English |
  • 美国VPS主机推荐
  • |
  • 代购服务
  • |
  • 10美元以下VPS
  • |
  • VPS新手指南/教程
  • |
  • 留言板
  • |
  • 关于
  • | 登录 |

    LNMP下防跨站、跨目录安全设置,仅支持PHP 5.3.3以上版本

    2012年10月5日 下午 | 作者:VPS侦探

    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的方法。

    如有问题或与更好的方法,欢迎在本文或到论坛lnmp区反馈。

    >>转载请注明出处:VPS侦探 本文链接地址:https://www.vpser.net/security/lnmp-cross-site-corss-dir-security.html
    VPS侦探推荐:
    遨游主机DiaHostingLinodePhotonVPSOAH新加坡VPSLOCVPSKVMLAVPS2EZBudgetVMVultr美国VPS主机
    欢迎加入VPS侦探论坛交流:https://bbs.vpser.net

    发表评论

    *必填

    *必填 (不会被公开)

    5 + 8 = ?

    评论(45条评论)

    1. 大牛我的网站被挂马了,最近正愁这事,现在php5.2的有没有比较简单一些解决跨站的问题呀。

    2. 非常不错的哦。5.2也应该这样的哦

    3. 感谢军哥

    4. 老大 lnmpa 升级php到5.3.13 加了上面的目录代码

      无效啊

      还有什么办法吗?

      super 回复:

      另外不论加不加:/proc/ 该目录下都可以执行探针。???

      VPSer 回复:

      @super, 这个是LNMP的不是LNMPA的,只要没注明LNMPA的,都是只针对LNMP的。LNMPA的要修改对应虚拟主机配置文件里的php_admin_value open_basedir

    5. 和一楼的同问
      php5.3.5添加防止跨目录后,pureftp管理面板没法用了,怎么破?

      把/etc 加入运行就行了,它读取系统用户,请问具体要怎么加,貌似我加了还是不行啊

      VPSer 回复:

      @lili, 怎么加,只能说没没自己看文章,/proc/ 怎么家的/etc/ 就怎么加

    6. 添加防止跨目录后,pureftp管理面板没法用了,怎么破?

      VPSer 回复:

      @Bolo, 把/etc 加入运行就行了,它读取系统用户

    7. php5.4可以用吗?

      VPSer 回复:

      @百变剧场, 这个没有测过,不过php 5.4不管是程序兼容性还是用户反映看都不好。

    8. 自己搞定了。是默认的phpini session.savepath没有定义,我自己定义到tmp目录下就可以了。谢谢。

    9. @小飞侠, 这个应该没影响

    10. phpmyadmin 还是没有搞定,客户端显示500错误,现在只能用的时候去到basedir,用完了加上去,真是麻烦,网上有人说加:/usr/share/webapps/:/etc/webapps上去,但是我发现没有这两个路径。http://blog.csdn.net/simpman/article/details/5440953

      VPSer 回复:

      @老鱼, phpmyadmin 就只是一个web程序,不调用其他目录
      要不你删掉phpmyadmin,重新下载一个试试 http://soft.vpser.net/lnmp/lnmp0.9-full/phpmyadmin-latest.tar.gz