宝塔面板网站防篡改需三步:一、安装启用基础网页防篡改插件,实现核心文件只读锁定;二、配置企业级插件,设置目录/进程白名单及关键后缀防护;三、联动Nginx防火墙拦截恶意URL与PHP执行特征请求。

如果您在使用宝塔面板托管网站时发现源码文件被恶意写入PHP一句话木马、JS脚本或HTML注入内容,则很可能是网站目录缺乏实时文件完整性保护。堡塔网页防篡改插件通过底层文件监控与访问控制机制,可有效阻止未授权的文件修改行为。以下是具体实施步骤:
一、安装并启用基础网页防篡改插件
该插件提供核心级文件防护能力,基于内核层文件事件监听,对受保护目录下的指定后缀文件实施只读锁定与重命名防护,防止直接覆盖或新增恶意脚本。
1、登录宝塔面板,在左侧菜单栏点击软件商店。
2、在搜索框中输入网页防篡改,找到对应插件后点击右侧安装按钮。
3、安装完成后,在已安装列表中找到该插件,点击设置进入配置页。
4、在设置页顶部点击服务状态 → 启动,确保防篡改服务处于运行中。
5、在站点保护区域,勾选需防护的网站,将对应开关切换为开启状态。
二、配置企业级防篡改插件实现精细化防护
企业级插件支持目录白名单、进程白名单及自定义后缀保护,可针对高风险目录(如upload、config、data)实施强制只读,并拦截非授权进程的写入行为,从而阻断源码注入链路。
1、在软件商店中搜索并安装企业级防篡改插件。
2、安装完成后进入其设置页面,点击左侧菜单中的保护列表 → 添加保护。
3、在弹出窗口中,填写需防护的绝对路径(例如:/www/wwwroot/example.com),模式选择高级模式。
4、在防护规则中,手动添加关键后缀:如php, inc, config, ini, js, html, htm,并取消勾选不必要后缀以缩小攻击面。
5、点击添加目录白名单,仅允许CMS后台上传目录(如wp-content/uploads)写入,其余目录默认拒绝写入。
6、点击进程白名单,仅保留php-fpm, nginx, apache2等合法Web服务进程,屏蔽shell、curl、wget等高危调用进程。
三、联动Nginx防火墙阻断注入入口
Nginx防火墙可在请求到达PHP解析器前拦截恶意URL路径与参数,尤其适用于拦截通过上传漏洞、模板注入、调试接口等方式尝试写入源码的HTTP请求,形成前置过滤层。
1、确认已安装并启用Nginx防火墙(WAF)插件。
2、进入WAF设置页,点击URL黑名单,添加企业级防篡改未监控目录的访问路径,例如:/config/.*\.php、/data/.*\.php。
3、在WAF的GET/POST参数拦截规则中,启用PHP代码执行特征检测,匹配关键词如eval\(|assert\(|system\(|exec\(|passthru\(|shell_exec\(|base64_decode\(|gzinflate\(|str_rot13\(|file_put_contents\(|fwrite\(|fputs\(|。
4、保存规则后,点击重载Nginx配置使规则生效。
四、启用文件锁定与权限变更防护
该机制通过强制修改文件系统权限(如chattr +a/+i)与实时校验文件哈希值,使已部署的源码文件无法被覆盖、删除或追加写入,即使攻击者获得低权限Shell也无法篡改核心PHP文件。
1、在企业级防篡改插件设置页,点击左侧全局配置。
2、将文件锁定模式设置为启用,并勾选重命名防护与权限变更防护。
3、在保护列表中,对目标站点执行立即锁定操作,插件将自动为所有受保护后缀文件添加chattr +a(仅追加)或chattr +i(不可变)属性。
4、返回服务器终端,执行命令验证:lsattr /www/wwwroot/example.com/index.php,确认输出含----ia-------e---或----i--------e---标识。
五、配置PHP安全防护拦截动态代码执行
当攻击者绕过前端防护,尝试通过PHP函数(如file_put_contents、fwrite)向源码目录写入恶意内容时,PHP安全防护可实时拦截危险函数调用,从解释器层面切断注入执行链。
1、安装并启用堡塔PHP安全防护插件。
2、进入插件设置页,点击函数禁用列表,勾选以下高危函数:eval, assert, system, exec, shell_exec, passthru, popen, proc_open, file_put_contents, fwrite, fputs, curl_exec, curl_multi_exec, base64_decode, gzinflate, str_rot13。
3、在规则库中启用ThinkPHP 5.x规则集与WordPress通用防护规则,覆盖主流CMS的常见注入向量。
4、点击屏蔽错误信息选项,关闭PHP错误回显,防止泄露绝对路径等敏感信息。
5、完成配置后,点击重启当前PHP版本服务使策略生效。










