说明: 站点一: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及其以上版本)防止目录跨站问题教程完成
» 转载请注明来源:系统运维 » 解决Nginx+php(php 5.3.0及其以上版本)防止目录跨站问题
很不错。
学习了
学习了,可以减少网站漏洞~
明天测试一下、、
学习了!!!
解决了我许久的一个困扰