解决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+php(php 5.3.0及其以上版本)防止目录跨站问题教程完成
相关文章推荐
- LNMP下防跨站、跨目录的安全设置,仅支持PHP5.3.3以上版本
- php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
- 【原创】cs+html+js+css模式(七): 顺序执行与并发执行问题,IIS7及其以上版本的抛错问题解决
- nginx+php 限制每个站点的目录范围,防止跨站
- PHP5.2 以上版本及其 IIS 与 Apache2.2 的共存问题
- nginx+php 限制每个站点的目录范围,防止跨站
- nginx+php使用open_basedir限制站点目录防止跨站
- ThinkPHP5 php5.5版本以上”No input file specified“问题解决
- Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)
- Cordova编译Android 22 以上版本,中文目录出错问题的解决办法
- nginx+php使用open_basedir限制站点目录防止跨站
- nginx+php使用open_basedir限制站点目录防止跨站
- 【转载】nginx+php使用open_basedir限制站点目录防止跨站
- AMFPHP1.4与PHP5.3及以上版本不兼容问题的解决
- 解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
- windows7下php5.4成功安装imageMagick,及解决php imagick常见错误问题。(phpinfo中显示不出来是因为:1.imagick软件本身、php本身、php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个文件放到/php/目录下面)
- php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
- nginx+php使用open_basedir限制站点目录防止跨站
- LNMP下防跨站、跨目录安全设置,仅支持PHP 5.3.3以上版本
- 简单Nginx下防跨站、跨目录安全设置,支持PHP 5.3.3以上版本