主页 > 程序开发 > 网站故障/维护 > 防跨站跨目录安全设置/配置

防跨站跨目录安全设置/配置

更新时间:2017-01-27 13:25  来源:电脑技术网  作者:电脑技术网  查看评论
文章目录索引
文章简介
有关跨站跨目录配置吐槽
适用范围及演示系统
防跨站跨目录设置

文章简介

在网站的运营过程中,经常会出现各种安全问题,其中会出现一种跨站跨目录访问的问题,如A网站出现被上传一个文件管理器或是木马,通过这个文件管理器,却能访问服务器中所有的文件,这对服务器来说是一种非常危险的事件。

电脑技术网这里把有关php.ini中有关防跨站跨目录设置再说一次和在ngingx文件中的配置也发一次,以便作者自己备用,也方便其它网友参考。

有关跨站跨目录配置吐槽

作者也浏览过有关这方面的资料,却发现很多网站都是误导或是转载别人的有关这方面的资料,都是未经测试和证实,电脑技术网在发这个文章前,曾经用的基本都是在php.ini中配置。

但是缺点每在在nginx中配置完网站,还要在php.ini中配置,非常的麻烦(其实作者有时也懒,不想在改php.ini中的文件,还要重启php)。

网络中有关这个防跨站的配置有很多,作者验证过部分,其中有个是在.user.ini中配置防跨站跨目录的相关设置,其实可以达到这种效果防跨站跨目录的效果。

效果如下:

  1. 网站 
  2.    index.html
  3.    ---文件夹A 
  4.        ---index.html
  5.    ---文件夹B 
  6.        ---index.html
  7.    .user.ini 

如以上目录,如果.user.ini文件传到网站根目录中,如果木马文件也在根目录的话,那么的确达到了禁止防跨站跨目录效果,但是别人不是傻B吧,非传到根目录?肯定会传到文件夹A或是文件夹B或是某个文件夹下的文件夹中,那么这个根目录下的.user.ini文件就完全的没用了,所以这个user.ini作者认为不适用于本文所说的防跨站。

而有关于.user.ini官网的相关资料,大家也可以去查阅一下,的确没说明可以达到防跨站,类似以前的.htaccess风格,并非本文主题所说的防跨站。

适用范围及演示系统

适用范围:所有程序jsp php均适用

演示系统:php5.5 centos6.4 nginx1.6

防跨站跨目录设置

这个方法,网上也出现很多了,已经说烂了,但的确简单就是麻烦,大家也可以这么设置。

第1步:找到服务器中的网站配置文件文件。

电脑技术网注:作者使用的是nginx,所以就以nginx为示例了。

第2步:以下是作者的网站有关此部分的核心配置代码。

  1. server 
  2.     { 
  3.         listen       80; 
  4.         server_name pc515.com; 
  5.         index index.html index.htm index.php join.php; 
  6.         root /mnt/www/pc515.com; 
  7.         include /usr/local/etc/nginx/blocksip.conf; 
  8.         error_page 404 /404.html; 
  9.         location ~ .*\.(html)$ { 
  10.             expires 1d; 
  11.         } 
  12.         location ~ .*\.(js|css)$ { 
  13.             expires 7d; 
  14.         } 
  15.         location ~.php$ { 
  16.             root           html; 
  17.             fastcgi_pass   127.0.0.1:9000; 
  18.             fastcgi_index  index.php; 
  19.             fastcgi_param  SCRIPT_FILENAME /mnt/www/pc515.com$fastcgi_script_name; 
  20.             include        fastcgi_params; 
  21.             fastcgi_param  PHP_VALUE  "open_basedir=/mnt/www/pc515.com:/tmp/:/proc/"; 
  22.         } 
  23.         if (!-e $request_filename) { 
  24.             return 404; 
  25.         } 
  26.         if ($host != 'pc515.com' ) { 
  27.             rewrite ^/(.*)$ http://pc515.com/$1 permanent; 
  28.         } 
  29.         access_log /mnt/www/log/pc515.com.log; 
  30.     } 

电脑技术网注:核心代码为fastcgi_param  PHP_VALUE  "open_basedir=/mnt/www/pc515.com:/tmp/:/proc/"; 

这一行必须要放include fastcgi_params下面。每个网站(pc515.com.conf)的配置include fastcgi_params下面,如果放在这行上面,可能会被include fastcgi_params中的配置覆盖掉。

第3步:重启nginx服务器即可立即生效,这时大家可上传个文件管理器,进行相关测试。

有关php | 的文章推荐