欢迎访问艾立兹站 Aliz- 专注建站教程与技术分享
您当前的位置:首页 > 建站教程 > 帝国 CMS 教程

帝国 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 会自动加载配置,无需重启。

四、重要补充说明

  1. 不会影响正常图片访问 规则只拦截 php 脚本,jpg/png/gif/webp 图片、mp4 视频、zip 压缩包不受任何影响,可以正常访问。
  2. 伪静态冲突排查 配置完出现页面 404,检查规则位置,写在伪静态 rewrite 规则前面
  3. 多站点子目录部署帝国 CMS 如果程序放在子目录/cms/,正则路径同步修改为 ^/cms/d/.*\.php
  4. 不要拦截 e 目录 php /e是帝国程序后台目录,千万不要给 e 目录加禁止 php 执行规则,会直接造成后台 500/403 打不开

五、配合帝国 CMS 后台安全参数


服务器规则属于第一道防线,后台也要同步设置: 后台→系统→系统设置→安全参数配置
  1. 开启上传文件类型限制,只允许 jpg,gif,png,webp,zip,rar 等安全后缀
  2. 设置上传文件最大尺寸,限制大文件上传
  3. 关闭后台【前台上传 PHP 文件】权限。
服务器拦截 + 后台上传类型限制,双重防护,就算黑客上传 php 木马,也完全无法运行。

六、常见踩坑

  1. 配置完还是能访问 php 木马 nginx 没有重载配置;正则路径写错;站点是子目录部署,路径没有对应修改。
  2. 配置后图片打不开 规则写错,错误拦截 jpg 图片,核对正则,只匹配 php 相关后缀。

3.IIS 配置后网站 500 报错 web.config xml 格式错误,标签缺少闭合,检查 xml 语法。
本文aliz.cn原创教程,转载请注明来源。

本文配套模板、静态源码可前往艾立兹素材库alisucai.com下载

发表评论 共有0条评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
公众号二维码

扫码关注公众号
获取全套技术教程