这是宝塔面板安全配置第十一篇文章,全文共计734个字,预计阅读时长5分钟。
一、前言:
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 一句话木马进行跨目录【能拦截一部分一句话木马】
蚁剑
五、总结
了解了open_basedir的三种解决方案
了解了每项解决方案的优劣和差别
如果此文章对你有帮助请转发至朋友圈中让更多人能学习
发表评论 取消回复