帝国 CMS 上传目录禁止执行 PHP 脚本配置|Nginx、Apache、IIS 完整配置
时间:2026-08-19 09:40:59 来源:aliz.cn 作者:SKY 阅读:
前言
帝国 CMS
/d目录是图片、附件上传保存目录,也是黑客攻击重点目标。 如果网站存在上传漏洞,黑客会把 php 木马文件上传到/d下面,服务器允许 PHP 解析运行,木马即可执行控制网站。核心防护思路:上传目录只允许存放图片、视频、压缩包等静态资源,直接拒绝解析执行 php、php5、phtml 等脚本文件。
注意:配置完成后,一定要测试验证,确认 /d 目录下 php 文件访问返回 403,不能正常执行。
一、Nginx 环境配置(Linux 宝塔)
打开网站 nginx 配置文件,在
server {}内部添加下面规则。nginx
#禁止d上传目录执行php
location ~ ^/d/.*\.(php|php5|php7|phtml|phar)$ {
deny all;
return 403;
}
#search缓存目录禁止php执行
location ~ ^/search/.*\.(php|php5|php7|phtml|phar)$ {
deny all;
return 403;
}
#s静态缓存目录禁止php执行
location ~ ^/s/.*\.(php|php5|php7|phtml|phar)$ {
deny all;
return 403;
}
配置保存,重载 Nginx 配置,不要直接重启服务。
宝塔操作:网站设置‑配置文件,粘贴代码,保存,重载配置。
测试方法
新建一个 test.php,上传放到网站
/d目录,浏览器访问https://www.aliz.cn/d/test.php 正确效果:页面返回 403 禁止访问,不会输出 php 内容。
二、Apache 环境配置
两种方式,推荐使用
.htaccess,把下面内容保存为.htaccess上传到/d文件夹。apache
<FilesMatch "\.(php|php5|phtml|phar)$">
Require all denied
</FilesMatch>
如果服务器支持虚拟主机修改,直接写入 vhost 配置:
apache
<Directory "/www/wwwroot/aliz.cn/d">
<FilesMatch "\.(php|php5|phtml|phar)$">
Require all denied
</FilesMatch>
</Directory>
修改后重启 Apache 服务生效。
三、Windows IIS 环境配置(web.config)
编辑网站根目录
web.config,在<system.webServer>节点加入下面配置。xml
<security>
<requestFiltering>
<denyUrlSequences>
<!--拦截d目录下php脚本访问-->
<add sequence="/d/" />
</denyUrlSequences>
</requestFiltering>
</security>
<handlers>
<remove name="PHP72_via_FastCGI" />
<add name="block_php_d" path="/d/*.php" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="None" />
<add name="block_php_search" path="/search/*.php" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="None" />
<add name="block_php_s" path="/s/*.php" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="None" />
</handlers>
说明:PHP72_via_FastCGI替换成你自己 IIS 的 php 处理程序名称。 保存 web.config,IIS 会自动加载配置,无需重启。
四、重要补充说明
- 不会影响正常图片访问 规则只拦截 php 脚本,jpg/png/gif/webp 图片、mp4 视频、zip 压缩包不受任何影响,可以正常访问。
- 伪静态冲突排查 配置完出现页面 404,检查规则位置,写在伪静态 rewrite 规则前面。
- 多站点子目录部署帝国 CMS 如果程序放在子目录
/cms/,正则路径同步修改为^/cms/d/.*\.php。 - 不要拦截 e 目录 php
/e是帝国程序后台目录,千万不要给 e 目录加禁止 php 执行规则,会直接造成后台 500/403 打不开。
五、配合帝国 CMS 后台安全参数
服务器规则属于第一道防线,后台也要同步设置: 后台→系统→系统设置→安全参数配置
- 开启上传文件类型限制,只允许 jpg,gif,png,webp,zip,rar 等安全后缀
- 设置上传文件最大尺寸,限制大文件上传
- 关闭后台【前台上传 PHP 文件】权限。
服务器拦截 + 后台上传类型限制,双重防护,就算黑客上传 php 木马,也完全无法运行。
六、常见踩坑
- 配置完还是能访问 php 木马 nginx 没有重载配置;正则路径写错;站点是子目录部署,路径没有对应修改。
- 配置后图片打不开 规则写错,错误拦截 jpg 图片,核对正则,只匹配 php 相关后缀。
3.IIS 配置后网站 500 报错 web.config xml 格式错误,标签缺少闭合,检查 xml 语法。
本文aliz.cn原创教程,转载请注明来源。
本文配套模板、静态源码可前往艾立兹素材库alisucai.com下载
发表评论
共有0条评论