网站目录禁止执行脚本,uploads目录防护

很多网站被入侵的起点,是上传目录里的图片或文档被替换成了 PHP 木马。
只要提前让 uploads 这类目录无法执行脚本,即使文件被传上来也运行不了。
本文面向零基础站长,讲清楚怎么在 Nginx 和 Apache 里禁止指定目录执行 PHP,步骤可以直接照做。

先判断你的服务器环境

动手前先确认两件事:Web 服务器是 Nginx 还是 Apache,以及网站根目录下的上传目录叫什么。
常见名称有 uploads、upload、files、attachment、data,有些程序还会按月份建子目录。

在终端执行下面命令可以快速确认:

nginx -v 2>&1
apache2 -v 2>&1 | head -n 1
ls -d /www/wwwroot/你的域名/uploads 2>/dev/null

如果你用的是宝塔面板,可以在“网站”列表里点开对应站点,查看“网站目录”和“配置文件”,路径通常是 /www/wwwroot/域名/。

在 Nginx 中禁止目录执行 PHP

Nginx 的做法是在站点配置里用 location 匹配上传目录,然后拒绝 .php 请求。
宝塔面板的操作路径是:网站 → 设置 → 配置文件,在 server { } 内加入:

location ~* ^/uploads/.*\.(php|php5|phtml|jsp|asp|aspx)$ {
    deny all;
}

location ^~ /uploads/ {
    location ~ \.php$ {
        deny all;
    }
}

保存后重载配置:

nginx -t && nginx -s reload

nginx -t 显示 syntax is ok 和 test is successful 才说明配置没问题。
如果站点有多个上传目录,把 uploads 换成实际目录名,或再加一段 location 即可。

Apache 下的 uploads 目录防护

Apache 可以用 .htaccess 文件实现,只对当前目录生效。
在 uploads 目录下新建 .htaccess,写入:


    Require all denied


php_flag engine off

如果服务器不允许 .htaccess 覆盖,需要在主配置的 段里把 AllowOverride 设为 All 再重启 Apache。
修改主配置后执行:

apachectl configtest
systemctl reload apache2

容易踩坑的几个地方

大小写和路径匹配:Nginx 里 ~* 表示不区分大小写,写成 ~ 只匹配小写,攻击者可能用 .PHP 绕过。

只防了 uploads 却漏了子目录:像 uploads/2024/05/ 这种结构,location ^~ /uploads/ 能覆盖子目录,但正则写法要注意路径开头。

图片正常显示但脚本被拦:这是预期结果。
禁止执行不影响 .jpg、.png、.pdf 等静态文件访问。

宝塔面板改配置后不生效:先确认修改的是当前站点配置文件,再检查是否有 include 引入的其他文件覆盖了你的规则。

验证防护是否真正生效

在 uploads 目录下放一个测试文件 test.php,内容写:

浏览器访问 https://你的域名/uploads/test.php,如果返回 403 或直接下载文件,说明脚本已被禁止执行。
验证完记得删除测试文件。

还可以结合日志确认,Nginx 错误日志默认在 /www/wwwlogs/ 或 /var/log/nginx/,看到 access forbidden 记录就说明规则起作用了。

常见疑问

禁止执行后,网站上传功能会受影响吗?
不会。上传本身是写入文件,禁止执行只是不让这些文件被当作程序运行,图片和文档访问不受影响。

还有其他目录需要同样处理吗?
建议对 cache、temp、data、runtime 等可写目录做同样限制。原则是:只允许脚本在程序代码目录执行,可写目录一律禁止。

配置写错了导致网站打不开怎么办?
先执行 nginx -t 检查语法,报错会指出行号。宝塔面板可以在“配置文件”里回退到修改前的版本,或者用备份恢复。

网站目录禁止执行脚本不是一次性工作,新增上传目录或更换程序后要重新检查。
把 uploads 目录防护做扎实,能挡掉相当一部分上传木马带来的风险。

分享到:
上一篇
XSS防御CSP策略,Nginx配置内容安全策略
下一篇
网站后台登录失败日志,暴力破解识别
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意