使用 mod_security 自定义集合

使用 mod_security 自定义集合

我想创建一个mod_security基于除用户 IP、会话 ID 或用户名之外的其他内容的集合。具体来说,基于 REQUEST_URI。但是,mod_security表示这是不可能的。我的问题是是否有一些解决方法。

我尝试了以下操作,但无法使其工作:

SetEnvIf Request_URI "^\/([a-z0-9]+)\/" account="$1"
SecAction setsid:%{account},pass,nolog
SecAction "phase:2,pass,setvar:session.count=+1,nolog"
SecRule SESSION:COUNT "@gt 60" "phase:2,deny,status:503,skip:1,nolog"
SecAction "phase:5,deprecatevar:session.count=1/1,pass,nolog"

上述代码应从 URL 中提取帐户名称(第 1 行),并将其用作会话 ID(第 2 行;这是行不通的)。然后,它增加包含该帐户名称的每个请求的请求计数(第 3 行)。如果计数超过 60(第 4 行),则返回 503 错误。计数每 1 秒减少 1(第 5 行)。

相关内容