禁止指定目录执行php文件

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

apache的配置

  1. <Directory /home/centos/web/data>
  2. php_flag engine off
  3. </Directory>
  4. <Directory ~ "^/home/centos/web/data">
  5.  <Files ~ ".php">
  6.  Order allow,deny
  7.  Deny from all
  8.  </Files>
  9. </Directory>

nginx的配置

  1. location /data/ {
  2. location ~ .*\.(php)?$ {
  3. deny all;
  4. }
  5. }
  6. location ~* ^/(attachments|upload)/.*\.(php|php5)$
  7. {
  8. deny all;
  9. }

参考:http://who0168.blog.51cto.com/253401/577309

标签:PHP 发布于:2019-10-15 14:41:35