当前位置:论坛首页 > Linux面板 > 建议

请求 Nginx 防火墙 WAF 自定义规则支持 JSON body 检测(Elementor...

发表在 Linux面板2026-8-22 12:08 [复制链接] 0 121

[backcolor=rgba(255, 255, 255, 0.9)]尊敬的宝塔官方团队:
[backcolor=rgba(255, 255, 255, 0.9)]您好!我使用的是宝塔面板 + Nginx 防火墙插件(btwaf),站点基于 WordPress + Elementor Pro 表单。发现一个垃圾留言绕过 WAF 自定义规则的漏洞,恳请官方支持修复。
[backcolor=rgba(255, 255, 255, 0.9)]问题现象:
垃圾爬虫通过 JSON 格式向 Elementor Pro 表单端点(/wp-admin/admin-ajax.php,action=elementor_pro_forms_send_form)提交表单,成功绕过 WAF 自定义拦截规则,直达源站(最终由 WordPress 端 Maspik 插件兜底拦截)。
[backcolor=rgba(255, 255, 255, 0.9)]技术原因:
WAF 自定义规则中的 body_param 条件仅在 Content-Type: multipart/form-data 时执行(ParamPost 遇到 multipart 才转 ParamPostBody),post_param 仅处理 urlencoded。当 Content-Type: application/json 时,body 完全不在 WAF 自定义规则的检测范围内,导致:
  • body_param(正则锚定 form_fields[message] 检测 http/www/裸域名/邮箱/垃圾关键词)对 JSON 请求不执行;
  • 爬虫提交体为 {"fields:{name:...,email:...,message:...含https链接/SEO关键词..."}},字段名无 form_fields 前缀,即使有检测也不匹配。
[backcolor=rgba(255, 255, 255, 0.9)]期望支持:
恳请官方在 Nginx 防火墙自定义规则中增加对 JSON body 的检测支持,例如:
  • body_param 条件对 application/json 类型的 POST 请求同样生效(匹配原始 JSON body);
  • 或新增 json_param / body_json 条件类型,支持对 JSON 解析后的字段做正则匹配;
  • 至少让自定义规则能够检测 JSON 提交中的垃圾特征(链接、域名、关键词等)。
[backcolor=rgba(255, 255, 255, 0.9)]补充:Elementor Pro 新版(atomic forms)及爬虫模拟的 JSON 提交正逐渐增多,该支持对使用 Elementor 表单的宝塔用户有普遍价值。

使用道具 举报 只看该作者 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表