Nginx、Apache安全设置 禁止上传目录或者指定目录执行php

0
22

在实际部署网站(尤其是 WordPress、CMS、或具备文件上传功能的网站)时,上传目录往往不应执行 PHP 文件,以避免被植入木马脚本。以下提供 Nginx 与 Apache 的常用安全配置示例。


:blue_square: Nginx 配置示例

禁止在指定目录(如:wp-contentuploadswp-includesimages 等)执行 .php / .php5 / .js 文件:

location ~ /(wp-content|uploads|wp-includes|images)/.*\.(php|php5|js)$ {
    deny all;
}

:check_mark: 用途: 阻止上传目录下的动态脚本被执行,提升站点安全性。 :check_mark: 提示: 更适合 WordPress、Laravel、Discuz 等支持静态资源上传的网站。


:red_square: Apache 配置示例

Apache 中可通过不同方式禁止 PHP 文件被解析或执行。


方法一:禁用目录下的 PHP 引擎(推荐)

<Directory /uploads/test>
    php_flag engine off
</Directory>

:check_mark: 效果: 该目录下所有 .php 文件均不会被解析执行。 :check_mark: 注意: 适用于启用了 mod_php 的环境。


方法二:直接阻止 PHP 文件访问

<Directory ~ "^/uploads/test/.*">
    <Files ~ "\.(php|php5)$">
        Order allow,deny
        Deny from all
    </Files>
</Directory>

:check_mark: 效果: 阻止用户访问指定目录下的 PHP 文件。 :check_mark: 适用: 无论 PHP 模块如何加载,此规则都可限制访问。


:pushpin: 建议

  • 上传目录应仅允许图片、文档等静态文件,不应执行脚本。
  • 确保目录权限(如 755 / 644)正确配置。
  • 结合 WAF、安全插件、防火墙 提高整体安全性。

发布回复

请输入评论!
请输入你的名字