网站防跨站的恩恩怨怨

一、前言:

    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的三种解决方案
  • 了解了每项解决方案的优劣和差别
  • 如果此文章对你有帮助请转发至朋友圈中让更多人能学习
薯条圈子温馨提示:本文最后更新于2021-07-13 20:03:09,某些文章具有时效性,若有错误或已失效,请在下方留言或联系薯条先生
© 版权声明
THE END
喜欢就支持一下吧
点赞71赞赏
分享
评论 抢沙发

请登录后发表评论