技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录注册

下次自动登录
现在的位置: 首页LNMP>正文
解决Nginx+php(php 5.3.0及其以上版本)防止目录跨站问题
2012年10月17日 LNMP 评论数 6 ⁄ 被围观 10,074次+

说明:
站点一:bbs.osyunwei.com 程序目录:/data/wwwroot/bbs.osyunwei.com
如下图所示:

站点二:sns.osyunwei.com 程序目录:/data/wwwroot/sns.osyunwei.com
如下图所示:

php.ini配置文件路径:/etc/php.ini php版本:php 5.3.16(此方法只针对php 5.3.0及其以上版本有效

问题:
在站点一的目录下面上传PHP管理工具(请自行搜索下载),通过此工具可以浏览到站点二的目录内容,出现跨站、跨目录浏览 
如下图所示: 
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接 

解决办法: 操作步骤
vi /etc/php.ini #编辑,在最后添加以下代码,修改open_basedir的目录为站点路径
[HOST=bbs.osyunwei.com]
[PATH=/data/wwwroot/bbs.osyunwei.com]
open_basedir=/data/wwwroot/bbs.osyunwei.com/:/tmp/
[HOST=sns.osyunwei.com]
[PATH=/data/wwwroot/sns.osyunwei.com]
open_basedir=/data/wwwroot/sns.osyunwei.com/:/tmp/
:wq!  #保存退出
备注:如果有多个站点,可以依次添加
service nginx restart #重启nginx
service php-fpm restart #重启php-fpm
测试:如下图所示

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

可以看到,通过站点一中的PHP管理工具已经不能访问站点二中的目录了,问题解决!
扩展阅读:
[HOST]配置段可用的参数: 
display_errors = On 
short_open_tag = On 
expose_php = Off 
... 
[PATH]配置段可用的参数: 
upload_tmp_dir=/tmp 
auto_prepend_file=top.php 
...

官方文档:http://www.php.net/manual/zh/ini.sections.php
至此,解决Nginx+php(php 5.3.0及其以上版本)防止目录跨站问题教程完成
     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

目前有 6 条留言 其中:访客:6 条, 博主:0 条

  1. adocode : 2012年10月17日13:03:07  1楼

    :oops: :oops: 很不错。

  2. 453798936@qq.com : 2012年10月17日16:02:29  2楼

    学习了

  3. 若和 : 2012年10月18日14:10:46  3楼

    学习了,可以减少网站漏洞~ :lol:

  4. 无风起浪 : 2012年10月19日13:58:34  4楼

    明天测试一下、、 :smile:

  5. 独自等待 : 2012年12月13日17:26:31  5楼

    学习了!!!

  6. 独孤天血 : 2012年12月19日23:08:46  6楼

    解决了我许久的一个困扰

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2017 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接