搜索

4.5. 复杂 ModSecurity 规则的示例

download PDF

您可以定义以下复杂的 ModSecurity 规则,例如,检查请求是否已更改历史记录:

SecRule REQUEST_URI|REQUEST_BODY|REQUEST_HEADERS_NAMES|REQUEST_HEADERS "history.pushstate|history.replacestate" "phase:4,deny,log,msg:'history-based attack detected'

前面的 ModSecurity 规则由以下组件组成:

SecRule

一个 配置指令,它会创建一个规则来利用指定的 Operator 分析指定的变量

注意

大多数 ModSecurity 规则使用此配置指令。

`REQUEST_URI|REQUEST_BODY|REQUEST_HEADERS_NAMES|REQUEST_HEADERS `
由管道分隔 的变量列表,用于定义规则检查的请求的不同部分
"history.pushstate|history.replacestate"
检查 JavaScript history.pushstate ()history.replacestate () 方法的以管道分隔的 运算符
"phase:4,deny,log,msg:'history-based attacks detected'"
如果找到指定的 operator 值,则规则 执行的操作转换

根据前面的示例,在 Apache 请求周期的第 4 阶段,规则检查 history.pushstate ()history.replacestate () 方法的请求周期的不同部分。如果规则在请求 URL 字符串、请求正文、请求标头名称或请求标头中找到这些方法,规则将执行以下操作:

  • deny

    停止规则处理并截获事务

  • log

    将规则成功与 Apache 错误日志文件和 ModSecurity 审计日志匹配

  • msg

    输出在日志中 检测到的基于历史记录的攻击 的消息

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.