首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ModSecurity:如何提高特定网站REQUEST_URI的SecRequestBodyLimit?

ModSecurity:如何提高特定网站REQUEST_URI的SecRequestBodyLimit?
EN

Security用户
提问于 2023-01-06 01:15:50
回答 2查看 665关注 0票数 4

我在我的ModSecurity日志中收到了这个错误:

代码语言:javascript
运行
复制
ModSecurity: Warning. Matched "Operator `Eq' with parameter `0' against variable `REQBODY_ERROR' (Value: `1' ) [file "/etc/nginx/modsec/modsecurity.conf"] [line "75"] [id "200002"] [rev ""] [msg "Failed to parse request body."] [data "Request body excluding files is bigger than the maximum expected."] [severity "2"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "***.***.***.***"] [uri "/add/submit.php"] [unique_id "167296149027.413348"] [ref "v0,1"]

据我所知,请求体超出了在主SecRequestBodyLimit配置中设置的默认ModSecurity参数。对于一些用户来说,在这个特定的页面上提交比默认的131 on请求正文限制更大的高度格式化的列表并不少见。

如何编写自定义排除规则,只为特定域上的"/add/submit.php“页面增加SecRequestBodyLimit?我正在寻找一条类似于这样的规则的合适的写作方法:

代码语言:javascript
运行
复制
SecRule REQUEST_HEADERS:Host "@pm example.com www.example.com" \
    "id:100001,\
    phase:1,\
    pass,\
    nolog,\
    chain"
    SecRule REQUEST_URI "@pm /add/submit.php" \
    "ctl:requestBodyLimit=1048576"

上面的规则不起作用,并给出了以下错误:

代码语言:javascript
运行
复制
nginx: [emerg] "modsecurity_rules_file" directive Rules error. File: /etc/nginx/modsec/coreruleset-4.0.0-rc1/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf. Line: 410. Column: 30. Expecting an action, got:  ctl:requestBodyLimit=1048576" in /etc/nginx/nginx.conf:32
EN

回答 2

Security用户

回答已采纳

发布于 2023-01-08 13:55:26

ModSecurity核心规则在这里设置开发人员的职责。需要注意的是,ModSecurity中有几个不同的请求体限制。他们处理不同的情况,防止不同类型的攻击。

查看日志行的这一部分:

数据“请求主体不包括文件超过了预期的最大值。“

我们可以看出,SecRequestBodyNoFilesLimit的限制已经超过了。这处理与非文件相关的请求体数据。您希望将此限制尽可能低,以减少对WAF发生某些类型攻击的可能性。

几个月前,我用图表和示例编写了一个关于这个确切主题的详细博客文章。值得一读,以更好地理解不同的请求体限制,它们所做的,以及它们存在的原因。

在Apache中,您只能针对需要它的特定位置增加SecRequestBodyNoFilesLimit,如下所示:

代码语言:javascript
运行
复制
<Location "/user/profile/avatar-upload.php">
    SecRequestBodyNoFilesLimit 200000
</Location>

我相信您可以在nginx中做一些类似的/相同的事情;我个人不使用nginx,所以我不能给您具体的说明。

票数 5
EN

Security用户

发布于 2023-01-07 09:26:11

对于位置的简单覆盖,添加到Nginx配置(server{}块):

代码语言:javascript
运行
复制
location /add/submit.php {
    modsecurity_rules 'SecRequestBodyLimit 1048576';
    modsecurity_rules 'SecRequestBodyNoFilesLimit 1048576';
}
票数 3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/267536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档