如何使用 AWS WAF 阻止“user-agent”标头不是“Java/1.8”的请求?

问题描述

我想使用 AWS WAF 来阻止 user-agent 标头不是 Java/1.8 的请求。

我怎样才能实现这个目标?

WAF 的正则表达式模式不支持 Arbitrary zero-width assertions

所以我不能在 WAF 中使用 lookahead and lookbehind regular expression

我本来想用 ^((?!Java\/1.8).)*$ 来阻止 user-agent 标头不是 Java/1.8 的请求。

规则构建器中语句的匹配类型不提供 Not equal to string

enter image description here

所以我真的想不出实现我想要的目标的方法

解决方法

要实现这一点,您需要将 Default web ACL action for requests that don't match any rules 更改为 Block,然后添加您的规则,如果 user-agent 匹配或包含您想要的内容,则允许访问。

您可以通过访问 WAF 的“规则”选项卡并向下滚动到此部分来执行此操作: enter image description here