fastadmin 如何限制访问public\assets\libs目录下面的所有html文件

在 FastAdmin 框架中,限制访问 public/assets/libs 目录下的特定文件(如 HTML 文件),最安全、高效的做法是直接在 Web 服务器层(Nginx 或 Apache)进行拦截配置。这比通过 PHP 路由处理性能更好,也能避免不必要的请求进入框架。

以下是针对不同服务器的具体配置方法:

方案一:使用 Nginx(推荐)

如果您使用的是 Nginx,可以在站点的配置文件(或在宝塔面板的"伪静态/配置文件"中)添加以下规则。该规则会匹配 assets/libs 目录下所有以 .html 结尾的请求,并直接返回 403 Forbidden

复制代码
location ~* ^/assets/libs/.*\.html$ {
    deny all;
}

说明:~* 表示不区分大小写的正则匹配,确保无论后缀是 .html 还是 .HTML 都会被拦截。

方案二:使用 Apache

如果您的环境是 Apache,可以在项目的 public/.htaccess 文件中添加以下代码来实现拦截:

复制代码
<FilesMatch "\.html$">
    # 仅针对 assets/libs 目录生效
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</FilesMatch>

或者更精确地限制路径:

复制代码
RewriteEngine On
RewriteRule ^assets/libs/.*\.html$ - [F,L]

(注:[F,L] 中的 F 代表返回 403 Forbidden,L 代表停止后续重写规则)

⚠️ 补充安全建议

根据 FastAdmin 的安全规范,除了限制 HTML 文件的访问外,还强烈建议您注意以下几点:

  1. 禁止脚本执行 :务必确保 uploadsassets 等公开可写目录没有 PHP 脚本的执行权限 。例如在 Nginx 中应配置 location ~ ^/(uploads|assets)/.*\.(php|php5|jsp)$ { deny all; },以防止恶意脚本被上传并执行。
  2. 强制下载而非预览 :对于可能包含敏感信息的文本类文件(如 txt、pdf 等),建议在服务器配置中添加 Content-Disposition: attachment 响应头,强制浏览器下载而不是在线渲染,防止 XSS 攻击。
相关推荐
那年窗外下的雪.7 小时前
AIDC 学习日志|第 15 天|EVPN 多归属故障收敛与撤销机制
网络·学习·php
点我头像干啥9 小时前
004:多个PDF文件合并
开发语言·pdf·php
AC赳赳老秦11 小时前
企业级合规审计体系:用 OpenClaw 落地采集全链路留痕,自动生成合规审计报告
java·python·django·beautifulsoup·php·deepseek·openclaw
郑州光合科技余经理14 小时前
海外版外卖系统架构:订单怎么流转、权限怎么分
java·开发语言·前端·系统架构·uni-app·php·ai编程
PHP实战开发录15 小时前
企业微信客户标签同步冲突排查记录
mysql·系统安全·php·企业微信·开发
FYKJ_201016 小时前
springboot网上购书商城---附源码15749
java·spring boot·后端·python·spark·django·php
程序猿_极客16 小时前
【免费】分享一套优质的基于Php的动漫网站系统、动漫分享网站系统
php·php+mysql·动漫网站系统
小义_17 小时前
Linux 性能排查实战
linux·服务器·php
伯远医学17 小时前
RIP-seq 高分文献案例分享
java·前端·javascript·人工智能·算法·eclipse·html
人机(未转人工)17 小时前
Flask + MySQL + Ollama(DeepSeek) 漏洞资产库 的网络安全资产分析平台的templates中(chat.html)渲染文件
mysql·flask·html