跳转到主内容
极星编程网:以代码为星,赴技术山海!

宝塔面板下如何设置网站的防跨站攻击隔离保护?

需启用防跨站攻击隔离保护机制:一、关闭面板“防跨站攻击”开关,避免框架兼容问题;二、手动配置open_basedir限制路径;三、通过Nginx location添加PHP执行范围限制;四、为各网站分配独立PHP-FPM进程池实现用户级隔离。 如果您在宝塔面板中托管多个PHP网站,且担心某一网站因漏洞被入侵后横向渗透至其他站点,则需启用防跨站攻击隔离保护机制。以下是具体设置步骤: 一、关闭网站目录的“防跨站攻击”开关 该选项在宝塔面板中实际为PHP运行环境下的open_basedir限制功能,启用后会强制限制PHP脚本仅能访问指定目录,但部分现代框架(如Laravel)依赖跨目录加载机制,强行开启反而导致500错误或资源无法加载。因此,对已明确运行目录结构的站点,应关闭此项以避免兼容性问题。 1、登录宝塔面板,点击左侧菜单“网站”,进入网站列表页面。 2、在目标网站操作栏中,点击“设置”按钮。 3、在弹出窗口中,点击左侧导航栏的“网站目录”。 4、找到“ 防跨站攻击(仅PHP生效) ”复选框,将其取消勾选。 5、确认“运行目录”已设置为正确的入口目录(例如Laravel项目应设为 /public ),然后点击“保存”。 二、通过PHP配置文件手动加固open_basedir 若仍需保留基础隔离能力,可绕过面板图形界面,在PHP配置中精细化控制open_basedir路径范围,既满足安全要求又不破坏框架逻辑。 1、在宝塔面板左侧菜单中,点击“软件商店”,找到已安装的PHP版本,点击右侧“设置”。 2、在PHP设置页面中,点击“配置修改”选项卡。 3、在配置文件中查找
open_basedir
参数所在行。 4、将原值修改为仅包含当前网站根目录及必要系统路径,例如: /www/wwwroot/your-site.com:/tmp:/proc 。 5、保存配置后,点击“重载配置”使更改生效。 三、使用Nginx location规则限制PHP脚本执行范围 通过Nginx配置层面对PHP脚本的可执行路径进行硬性约束,防止恶意上传的PHP文件在非预期位置被执行,属于更底层的隔离手段。 1、在网站设置窗口中,点击左侧“配置文件”选项卡。 2、在Nginx配置代码中,定位到
location ~ \.php$
区块。 3、在该区块内添加以下限制语句: fastcgi_param PHP_VALUE "open_basedir=/www/wwwroot/your-site.com:/tmp"; 4、确保该语句位于
include enable-php-*.conf;
之后,避免被覆盖。 5、保存配置并点击“重载Nginx”。 四、为每个网站分配独立PHP-FPM进程池 不同网站使用各自隔离的PHP-FPM子进程池,实现用户级资源与权限分离,即使一个站点的PHP进程被劫持,也无法影响其他站点的运行上下文。 1、在宝塔面板左侧菜单中,点击“软件商店”,找到对应PHP版本,点击“设置”。 2、切换至“服务”选项卡,点击“PHP-FPM配置”右侧的“编辑”按钮。 3、在打开的
www.conf
文件中,复制一段完整的
[www]
进程池配置块。 4、将复制块顶部的
[www]
改为
[site_a]
,并修改其中的
user
、
group
为独立系统用户(如
www-site-a
)。 5、在对应网站的Nginx配置中,将
fastcgi_pass
指向新进程池: fastcgi_pass unix:/tmp/php-cgi-site_a.sock; 6、重启PHP-FPM服务。

相关文章