应启用宝塔WAF并配置SQL注入防护:一、安装/启动WAF模块;二、在规则管理中启用全部SQL注入规则;三、为高风险站点开启高级SQL防护并添加引号拦截规则;四、导入自定义正则规则;五、通过sleep测试及日志验证拦截效果。

如果您在使用宝塔面板托管网站时,发现存在频繁的SQL注入尝试请求,但默认WAF规则未能有效阻断,则可能是WAF未启用或规则匹配粒度不足。以下是利用宝塔面板内置WAF拦截常见SQL注入的具体配置步骤:
一、确认并启用WAF模块
宝塔面板的WAF功能需手动安装并启动,未启用状态下所有防护规则均不生效。只有开启WAF服务后,后续规则配置才具备执行基础。
1、登录宝塔面板后台,进入【软件商店】页面。
2、在搜索框中输入“WAF”,找到【宝塔网站防火墙(专业版)】或【免费版WAF】(根据已安装版本确认)。
3、若状态显示为“未安装”,点击【安装】;若已安装但显示“已停止”,点击右侧【启动】按钮。
4、启动成功后,点击【设置】进入WAF主配置界面。
二、开启SQL注入全局防护规则
宝塔WAF内置多类攻击特征库,其中SQL注入规则组包含对union select、sleep(、benchmark(、information_schema等典型载荷的正则匹配。需确保该规则组处于启用状态,并作用于目标站点。
1、在WAF设置页左侧导航栏点击【规则管理】。
2、在规则分类中找到【SQL注入】大类,点击展开子项。
3、勾选全部以“SQL”开头的规则条目,包括但不限于:SQL注释符检测、联合查询关键词检测、延时函数调用检测。
4、在页面右上角点击【保存规则】,使配置立即生效。
三、为指定站点单独启用高敏SQL防护模式
默认全局规则可能因兼容性考虑放宽部分匹配强度,针对高风险站点可启用“严格模式”,该模式会增强对嵌套编码、大小写混淆、空格绕过等变体SQL注入的识别能力。
1、返回WAF首页,点击顶部【网站防护】标签页。
2、在站点列表中找到需强化防护的目标域名,点击其右侧【设置】图标。
3、在弹出窗口中勾选【启用高级SQL注入防护】选项。
4、在下方【自定义规则】区域添加一条新规则,内容为:匹配URL参数中连续出现两个及以上单引号或双引号,动作设为【拦截】。
5、点击【提交】完成站点级配置。
四、导入自定义SQL注入特征规则
官方规则库无法覆盖全部新型绕过手法,可通过导入第三方高精度正则规则补充检测维度,例如匹配Base64编码后的SQL关键字、Unicode编码参数等隐蔽载荷。
1、在【规则管理】页底部找到【导入规则】按钮,点击展开文本框。
2、粘贴以下规则内容(每行一条,符合WAF规则语法):
“args:\.*/union\s+select.*” → 拦截
“args:.*[\'\"`]\s*and\s+[0-9]+\s*=[0-9]+.*” → 拦截
“args:.*%27\s*or\s*1%3D1.*” → 拦截
3、确认无语法错误后,点击【导入】。
4、导入完成后,在规则列表中定位新规则,确保其【状态】列显示为启用。
五、验证SQL注入拦截效果
配置完成后需通过可控测试确认规则实际生效,避免误配导致放行或误杀。测试应使用非生产环境或已备份站点进行,且仅限管理员发起。
1、在浏览器地址栏访问目标站点URL,并附加测试参数:/index.php?id=1' and sleep(5)--+。
2、观察返回结果:若页面响应时间显著延长(超10秒)或直接返回403 Forbidden页面,则说明WAF已触发拦截。
3、登录宝塔面板,进入【WAF】→【日志审计】,筛选最近10分钟日志,查找含“SQL注入”字样的拦截记录,确认来源IP与匹配规则ID一致。










