禁止指定目录执行php文件

阿豪运维笔记(阿豪同学) 2020-03-04 1.15 K阅读

文章最后更新时间:2022年08月13日已超过110天没有更新。

我们设置网站权限的时候,有些目录不得不设置让http服务器有写入权限,这样安全隐患就来了。比如discuz x2的 data目录,这个必须要有写入限,论坛才能正常运行,但有的黑客可能就会利用这个目录上传php文件(你会说附件上传已经限制这种格式的文件,但谁知道黑客会利用什么手段上传呢,只有他们清楚了),进而到配置文件读取到mysql的连接信息,那么你的数据库就是他的了。下面介绍apache和nginx下禁止指定目录执行php文件。

Apache的配置

<Directory /home/centos/web/data>      
php_flag engine off  
</Directory>  
<Directory ~ "^/home/centos/web/data">     
<Files ~ ".php">       
Order allow,deny       
Deny from all     
</Files>  
</Directory>

Nginx的配置

单个目录禁用解析php

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

多个目录禁用解析php

location ~* ^/(attachments|uploads)/.*\.(php|php5)$
{
  deny all;
}

PS:禁用目录php解析需要放在php配置项前面才会生效

例如

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

location ~ .php$ {
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  include        fastcgi_params;
}


以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作有参考学习价值
喜欢请点击上方【分享】,如果对您有帮助可点击上方【打赏】打赏本站。谢谢大家对阿豪运维笔记的支持。

文章作者: 阿豪运维笔记(阿豪同学)
本文链接:
文章版权:站长码字很辛苦,除非注明,否则均为阿豪运维笔记原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码