LNMP下防跨站、跨目录安全设置,仅支持PHP 5.3.3以上版本
LNMP一键安装包下存在跨站和跨目录的问题,跨站和跨目录影响同服务器/VPS上的其他网站,最近看PHP 5.3,在5.3.3以上已经增加了HOST配置,可以起到防跨站、跨目录的问题。
如果你是PHP 5.3.3以上的版本,可以修改/usr/local/php/etc/php.ini在末尾里加入:
[HOST=www.vpser.net] open_basedir=/home/wwwroot/www.vpser.net/:/tmp/[PATH=/home/wwwroot/www.vpser.net] open_basedir=/home/wwwroot/www.vpser.net/:/tmp/
按上面的这个例子修改,换成你自己的域名和目录,多个网站就按上面的例子改成多个,最后重启php-fpm:/etc/init.d/php-fpm restart
如果让网站可以使用探针需要在/tmp/后加上:/proc/
PHP 5.3.3以上版本的用户,(LNMP 1.0以上默认已支持,不需要要替换)可以执行:cd /root;rm -f /root/vhost.sh;wget http://soft.vpser.net/lnmp/ext/vhost.sh;chmod +x /root/vhost.sh,这样替换原来的vhost.sh文件,以后添加网站就会自动添加HOST防跨站、跨目录的配置。
为解决升级PHP 5.3.*版本后部分需要PHP 5.2.*版本的程序无法运行的问题,我们会增加一个PHP 5.2的安装脚本,脚本将在未来几天发布。
注意:open_basedir 不是万能的也不是绝对安全的,会阻止一部分防跨目录的行为,但是同时也存在很多绕过open_basedir的方法。
>>转载请注明出处:VPS侦探 本文链接地址:https://www.vpser.net/security/lnmp-cross-site-corss-dir-security.html
学习了
@liyu, 可以用,5.2的话也可以但有写不同,参考该楼层:http://www.vpser.net/security/lnmp-cross-site-corss-dir-security.html#comment-29351
@liyu, @VPS侦探
站长, 请问5.3.28的php版本可以用吗.
还有5.2版本的脚本不提供了吗
php升级曾经失败过 不敢轻易升级.
收益良多,感谢!
@lanmeng, 这个应该是基本没影响的,phpmyadmin出错报什么信息?
这样设置之后discuz论坛确实会变慢,执行时间由原来0.06变成了0.5左右,而且phpmyadmin会出错无法正常使用
这个在1.0上面是不是自动设置的啊,我看我的上面也有
本地是用Sublime Text
linux用的是lnmp1.0 自带的vi编辑器
@麦子, 配置上没问题,你用什么工具编辑的?
/usr/local/php/bin/php -v后的报错信息如下:
PHP: syntax error, unexpected END_OF_LINE, expecting '=' in /usr/local/php/etc/ php.ini on line 1876
PHP 5.4.21 (cli) (built: Nov 18 2013 13:26:13)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies
报错行上下位置:
1873 [HOST=www.phpmywind.net]
1874 open_basedir=/mnt/wine/wwwroot/cvika/:/tmp/
1875 [PATH=/mnt/wine/wwwroot/cvika]
1876 open_basedir=/mnt/wine/wwwroot/cvika/:/tmp/
1877 [HOST=vps.phpmywind.net]
1878 open_basedir=/home/wwwroot/default01/:/tmp/:/proc/
1879 [PATH=/home/wwwroot/default01]
1880 open_basedir=/home/wwwroot/default01/:/tmp/:/proc/
@麦子, /usr/local/php/bin/php -v 看一下,然后贴一下报错行数上下的配置
老大,我把lnmp1.0的php升级到了5.4.21,结果按照上面加入到php.ini保存 重启的时候提示
Starting php-fpm PHP: syntax error, unexpected END_OF_LINE, expecting '=' in /usr/local/php/etc/php.ini on line 1880
done
而1880行内容就是 open_basedir=/home/wwwroot/www.vpser.net/:/tmp/ 这个
怎么弄呢?
@ledzixun.com, 看16楼回复