适用场景:WordPress网站使用云锁WAF防护,后台提交内容时报错、长时间转圈、直接被IP临时封禁;网站前台访问正常,浏览器退出后台后网站自动恢复,仅后台提交操作失败。
一、故障现象
- 在WordPress后台导航菜单页面(/wp-admin/nav-menus.php)修改子菜单名称,点击保存后页面长时间转圈,随后弹出WAF致命错误,当前IP被临时拦截。
- 在文章编辑器粘贴包含HTML、SQL代码片段的技术内容,点击发布/保存草稿,同样触发云锁拦截,无法提交。
- 网站前台访问完全正常;浏览器关闭页面、退出后台,网站自动恢复可访问,修改的内容不会生效。
- 云锁防护日志提示:命中XSS防护规则(IMG标签类XSS,规则编号201),检测来源为POST提交正文数据。
二、故障根本原因
云锁WAF的201号XSS防护规则,会对POST提交的正文内容做标签特征检测。当在WordPress代码编辑模式粘贴HTML标签、SQL语句等内容时,提交的POST数据命中该规则,云锁判定为XSS攻击,直接触发拦截,临时封禁当前访问IP。
这属于典型的WAF误报,并非网站真的遭到攻击。
额外难点:家用宽带为公网动态IP,IP会不定期自动变化,单纯添加IP白名单无法一劳永逸。
三、最优解决方案(最小改动,不降低整体安全防护)
方案:URL路径例外豁免(推荐)
不关闭全局WAF规则,仅对WordPress后台的提交接口跳过WAF检测,不受公网动态IP变化影响。
- 进入云锁防护设置 → 例外列表(文件/目录例外)
- 选择「手动添加」,不要直接豁免整个/wp-admin/目录,只添加3个核心提交接口:
/wp-admin/post.php— 文章编辑、发布、保存草稿接口
/wp-admin/admin-ajax.php— 导航菜单保存、后台所有AJAX提交操作(本次菜单保存报错的核心接口)
/wp-admin/async-upload.php— 后台图片、附件上传接口 - 保存例外配置即可。
该方案优势:只有这3个后台提交接口跳过检测,网站前台、登录页、其余后台页面的防护全部正常开启,安全敞口最小,也不需要维护动态IP白名单。
备选方案:单独关闭误报的XSS规则
如果不想添加URL例外,可以单独关闭这条容易误报的规则:
- 打开云锁Web防护 → 漏洞防护 → XSS防护列表
- 找到编号为201%8
