您的位置:首页 > 运维架构 > Nginx

解决Nginx+php(php 5.3.0及其以上版本)防止目录跨站问题

2013-04-16 18:25 656 查看
说明:
站点一: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管理工具(请自行搜索下载),通过此工具可以浏览到站点二的目录内容,出现跨站、跨目录浏览
如下图所示:
解决办法:操作步骤
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
测试:如下图所示
可以看到,通过站点一中的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+phpphp 5.3.0及其以上版本)防止目录跨站问题教程完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 目录 跨站
相关文章推荐