如何通过AWS WAF仅允许GET和POST两种HTTP请求方法?
AWS WAF 单规则允许GET/POST请求方法的实现方案
完全可以在单条规则里同时允许GET和POST两种请求方法,而且实现起来很简单,具体操作如下:
简便实现步骤
在AWS WAF控制台创建规则时,直接用OR逻辑组合两个HTTP请求方法条件:
- 新建规则(比如命名为
Allow-only-HTTP-GET-and-POST) - 添加第一个条件:选择「HTTP请求方法」,匹配值设为
GET - 添加第二个条件:同样选择「HTTP请求方法」,匹配值设为
POST - 将两个条件的逻辑关系设置为**「任意匹配」(即OR)**
- 规则动作设置为「允许」
这样一来,只要请求方法是GET或POST中的任意一种,就会触发这条规则的允许动作,不会出现之前两条规则互相拦截的问题——之前的问题出在两条规则各自只允许单一方法,非目标方法会被对应规则拦截,而单条OR组合规则只会拦截既不是GET也不是POST的请求。
需要考虑的其他场景
- 方法大小写问题:HTTP标准方法是大写,WAF默认匹配的是大写值,不用额外处理小写(比如
get),但如果你的应用有特殊需求支持小写方法,可以添加对应的小写匹配条件。 - 路径级别的特殊限制:如果你的应用某些特定路径只允许GET或只允许POST,需要创建优先级更高的规则单独处理这些路径,避免全局规则覆盖特殊需求。
- 规则优先级:确保这条允许规则的优先级高于其他拦截类规则,防止合法的GET/POST请求被先拦截。
- 测试验证:规则创建后,用
curl或API测试工具分别发送GET、POST、PUT、DELETE等请求,确认只有前两种能正常通过,其他方法被拦截。 - 日志监控:开启AWS WAF日志,定期检查请求拦截情况,及时发现误拦截或规则遗漏的问题。
内容的提问来源于stack exchange,提问作者Neron Joseph
相关产品推荐
相关产品推荐

