这是宝塔面板安全配置第十一篇文章,全文共计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的三种解决方案

  • 了解了每项解决方案的优劣和差别

  • 如果此文章对你有帮助请转发至朋友圈中让更多人能学习


来源:https://mp.weixin.qq.com/s/UPVSSMzA8-D2fyFo4OWeJQ
点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部