使用Modsecurity和Apache HTTP,我如何将formdata中的某些特定字段列入白名单?我需要允许使用字段名称的特定模式。
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是表单上的字段,也是要在上述规则中排除的字段。
/path/to/your/form/endpoint
@rx
@beginsWith
ctl
1条答案
按热度按时间l7wslrjt1#
你应该做一个排除。我假设你需要一个动态的排除,这意味着它在交易的评估过程中“唤醒”。我还假设你的表单的端点总是相同的,所以你可以做一些类似的规则(在其他人之前):
其中
/path/to/your/form/endpoint
是表单的URI。您可以选择其他运算符进行检查,例如@rx
、@beginsWith
等。如果使用@rx
,请确保使用锚定表达式。ctl
操作包含要排除的规则的ID,NAME_OF_THE_FORM_FIELDs是表单上的字段,也是要在上述规则中排除的字段。