一、前言:

open_basedir是PHP设置中一项很重要安全的设置。将用户访问文件的活动范围限制在指定的区域,通常是其根目录的路径,也可用符号 "." 来代表当前目录。


二、设置方法

2.1 php.ini的设置

在pip.ini 中添加open_basedir

如果发现配置项前是有分号,则设置方法去掉分号

例如:

open_basedir=/www/wwwroot/dz.com/:/tmp/

PS:不太建议设置此项


2.2 FastCgi.conf 设置

在/www/server/nginx/conf/fastcgi.conf 添加

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root:/tmp/";

PS:如果你的是Nginx 并且你的项目没有MVC框架的项目可以使用。但是如果有例如Thinkphp 项目这种的。就不能使用。就会导致直接项目打不开。不太建议设置此项


2.3 .user.ini 实现 【默认为.user.ini实现】

在项目根目录 创建 .user.ini文件,写入如下内容

例如网站名称为 dz.com 那么在网站根目录建立一个.user.ini 的文件

文件内容如下:

open_basedir=/www/wwwroot/dz.com/:/tmp/



三、优劣分析

优点:

第一种:不易给修改

第二种:不易被修改,配置简单

第三种:配置简单分配每个网站

缺点:

第一种:繁琐+窜站。

第二种: 一刀切不兼容Thinkphp这类框架

第三种:容易被绕过

四、解决方案

第一种解决方案:

fastcgi 方式有效的解决了防跨站的问题。如果你的项目中没有ThinkPHP此类框架开发的项目就可以使用fastcgi的解决方案。

第二种解决方案:

如果你的项目中使用了Thinkphp此类网站。那么可以安装扩展来解决防跨站的问题

安装方式如下:

选择你安装的PHP版本-->安装扩展-->bt_safe -->安装

Linux 面板支持的PHP版本 PHP5.4-8.0

Windows面板支持的PHP版本PHP7.0-7.4

两个解决方案的前提条件的是你的网站开启了防跨站的选项

五、测试
测试webshell 一句话木马进行跨目录【能拦截一部分一句话木马】
蚁剑