使用Modsecurity和Apache HTTP,我如何将formdata中的某些特定字段列入白名单?

9bfwbjaz  于 2023-03-24  发布在  Apache
关注(0)|答案(1)|浏览(157)

使用Modsecurity和Apache HTTP,我如何将formdata中的某些特定字段列入白名单?我需要允许使用字段名称的特定模式。

l7wslrjt

l7wslrjt1#

你应该做一个排除。我假设你需要一个动态的排除,这意味着它在交易的评估过程中“唤醒”。我还假设你的表单的端点总是相同的,所以你可以做一些类似的规则(在其他人之前):

SecRule REQUEST_URI "@strEq /path/to/your/form/endpoint" \
    "id:1000,\
    phase:1,\
    t:none,\
    nolog,
    pass,\
    ctl:ruleRemoveTargetById=ID_OF_YOUR_RULE;ARGS:NAME_OF_THE_FORM_FIELD1,\
    ctl:ruleRemoveTargetById=ID_OF_YOUR_RULE;ARGS:NAME_OF_THE_FORM_FIELD2,\
    ctl:ruleRemoveTargetById=ID_OF_YOUR_RULE;ARGS:NAME_OF_THE_FORM_FIELD3,\
    ctl:ruleRemoveTargetById=ID_OF_YOUR_RULE2;ARGS:NAME_OF_THE_FORM_FIELD1,\
    ctl:ruleRemoveTargetById=ID_OF_YOUR_RULE2;ARGS:NAME_OF_THE_FORM_FIELD2,\
    ctl:ruleRemoveTargetById=ID_OF_YOUR_RULE2;ARGS:NAME_OF_THE_FORM_FIELD3

其中/path/to/your/form/endpoint是表单的URI。您可以选择其他运算符进行检查,例如@rx@beginsWith等。如果使用@rx,请确保使用锚定表达式。
ctl操作包含要排除的规则的ID,NAME_OF_THE_FORM_FIELDs是表单上的字段,也是要在上述规则中排除的字段。

相关问题