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.0794baidu.com] open_basedir=/home/wwwroot/www.0794baidu.com/:/tmp/[PATH=/home/wwwroot/www.0794baidu.com] open_basedir=/home/wwwroot/www.0794baidu.com/:/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偵探 本文鏈接地址:http://www.0794baidu.com/security/lnmp-cross-site-corss-dir-security.html










學習了
@liyu, 可以用,5.2的話也可以但有寫不同,參考該樓層:http://www.0794baidu.com/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.0794baidu.com/:/tmp/ 這個
怎么弄呢?
@ledzixun.com, 看16樓回復