首页 > 解决方案 > 基于完整 URL 而不仅仅是 AWS WAF 中的 URI 进行阻止

问题描述

我在多个指向不同 URL 的 CloudFront 分配中使用 AWS WAF。一般来说,它运作良好。但是,我们注意到我想要阻止的一些基础站点上的特定活动,但我不想在所有站点上阻止它。

对我来说,创建一个匹配 URI 上的正则表达式并以此为基础进行阻止的 WAF 规则似乎很简单。但是,AWS WAF 似乎没有在其 URI 匹配中使用主机。例如这条规则:

Inspect URI, Block based on RegEx with RegEx being:

^(http|https):\/\/(www)?\.?example\.net\/(.*)?\/*.html$

这些测试 URL 在我的正则表达式测试器中工作:

http://example.net/blah.html
https://example.net/blah.html
http://www.example.net/blah.html
https://example.net/stuff/blah.html

但是,当我将它应用于 WAF 时,它不会阻塞。

我还可以在这里做些什么来实现我想要做的事情吗?我不想直接在我的托管服务器上编辑任何内容,因为这会更让人头疼,并且无法解决我试图解决的问题(即阻止机器人向我的服务器发送垃圾 URL 和 404 秒杀)。

我也意识到有人可能会建议我可以做一个速率限制——我确实有这个限制——但是机器人来自许多不同的 IP,所以这并不能解决这个特殊情况。相反,我只想阻止他们一直试图访问的一些 URL 类型。在这种情况下,它是成千上万的 HTML 页面。它也没有考虑到我只想阻止这些针对特定站点的请求。

标签: amazon-web-servicesamazon-cloudfrontweb-application-firewall

解决方案


推荐阅读