在网站的运营过程中,经常会出现各种安全问题,其中会出现一种跨站跨目录访问的问题,如A网站出现被上传一个文件管理器或是木马,通过这个文件管理器,却能访问服务器中所有的文件,这对服务器来说是一种非常危险的事件。
电脑技术网这里把有关php.ini中有关防跨站跨目录设置再说一次和在ngingx文件中的配置也发一次,以便作者自己备用,也方便其它网友参考。
作者也浏览过有关这方面的资料,却发现很多网站都是误导或是转载别人的有关这方面的资料,都是未经测试和证实,电脑技术网在发这个文章前,曾经用的基本都是在php.ini中配置。
但是缺点每在在nginx中配置完网站,还要在php.ini中配置,非常的麻烦(其实作者有时也懒,不想在改php.ini中的文件,还要重启php)。
网络中有关这个防跨站的配置有很多,作者验证过部分,其中有个是在.user.ini中配置防跨站跨目录的相关设置,其实可以达到这种效果防跨站跨目录的效果。
效果如下:
- 网站
- index.html
- ---文件夹A
- ---index.html
- ---文件夹B
- ---index.html
- .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步:以下是作者的网站有关此部分的核心配置代码。
- server
- {
- listen 80;
- server_name pc515.com;
- index index.html index.htm index.php join.php;
- root /mnt/www/pc515.com;
- include /usr/local/etc/nginx/blocksip.conf;
- error_page 404 /404.html;
- location ~ .*\.(html)$ {
- expires 1d;
- }
- location ~ .*\.(js|css)$ {
- expires 7d;
- }
- location ~.php$ {
- root html;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME /mnt/www/pc515.com$fastcgi_script_name;
- include fastcgi_params;
- fastcgi_param PHP_VALUE "open_basedir=/mnt/www/pc515.com:/tmp/:/proc/";
- }
- if (!-e $request_filename) {
- return 404;
- }
- if ($host != 'pc515.com' ) {
- rewrite ^/(.*)$ http://pc515.com/$1 permanent;
- }
- access_log /mnt/www/log/pc515.com.log;
- }
电脑技术网注:核心代码为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服务器即可立即生效,这时大家可上传个文件管理器,进行相关测试。
Copyright © 2013 - 2020