You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助配置ModSecurity CRS 3.3拦截含HTML标签的所有输入

解决ModSecurity CRS 3.3拦截所有HTML标签输入的问题

问题说明

我们在Nginx服务器上部署了ModSecurity及OWASP Core Rule Set (CRS) 3.3版本,Web UI提交的三类JSON输入中:

  • 输入1、2(含带事件属性的HTML标签)触发了941系列HTML注入规则
  • 输入3(含纯<h1>标签)未触发941320规则,需实现三类输入全拦截

提交的输入示例

// 输入1
{
  "data": {
    "id": 1002,
    "email": "testmodsec@gmail.com",    
    "name": "ske<h1 onmouseover='console.log(\"js\")'>test</h1>",
    "locale": "en",
    "category": 1,
    "status": 0
  }
}

// 输入2
{
  "data": {
    "id": 1002,
    "email": "testmodsec@gmail.com",    
    "name": "ske<img src=''onerror='alert(1)'>",
    "locale": "en",
    "category": 1,
    "status": 0
  }
}

// 输入3
{
  "data": {
    "id": 1002,
    "email": "testmodsec@gmail.com",    
    "name": "ske<h1>test</h1>",
    "locale": "en",
    "category": 1,
    "status": 0
  }
}

解决方案

1. 调整941320规则的检测范围

CRS 3.3中941320规则默认仅拦截带风险属性的HTML标签,需修改其正则表达式以覆盖纯标签场景:

  1. 打开CRS规则文件REQUEST-941-APPLICATION-ATTACK-XSS.conf
  2. 找到941320规则,将原正则表达式部分
    @rx <[a-z][a-z0-9]*[^>]*>
    
    修改为:
    @rx <[a-z][a-z0-9]*(\s[^>]*|)>
    
    该正则会匹配所有HTML起始标签,包括纯标签(如<h1>)和带属性的标签

2. 新增自定义规则(可选,不修改默认CRS规则时用)

在自定义规则文件中添加以下规则,专门拦截纯HTML标签:

SecRule REQUEST_BODY "@rx <[a-z][a-z0-9]*>(.*?)</[a-z][a-z0-9]*>" \
    "phase:2,block,msg:'Block pure HTML tags in input',id:'1000001',\
    severity:'CRITICAL',tag:'CUSTOM/RULE/HTML_TAG_BLOCK',\
    setvar:'tx.anomaly_score=+%{tx.critical_anomaly_score}'"

3. 确保JSON请求体被正确解析

若请求为JSON格式,需在modsecurity.conf中配置JSON解析:

SecRule REQUEST_HEADERS:Content-Type "application/json" \
    "id:'200000',phase:1,t:none,t:lowercase,pass,nolog,\
    setvar:'tx.parsers=application/json'"

同时确保SecRequestBodyAccess On和SecRuleEngine On已开启

4. 验证规则

修改完成后重启Nginx:

sudo systemctl restart nginx

提交三类输入测试,查看ModSecurity日志(默认路径/var/log/modsec_audit.log)确认所有请求均被拦截


内容的提问来源于stack exchange,提问作者sk2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:06:40