如何使用 AWS WAF 防止盗链

How to Prevent Hotlinking by Using AWS WAF

有一个 AWS 文档解释了如何自己做,即如何只允许一个页面盗链并拒绝所有其他页面:https://aws.amazon.com/blogs/security/how-to-prevent-hotlinking-by-using-aws-waf-amazon-cloudfront-and-referer-checking/

我想知道 WAF 是否适合我的用例,这与上面的用例有点不同。

我问这个问题的原因是注意到 WAF 有一些严格的限制:https://docs.aws.amazon.com/waf/latest/developerguide/limits.html,根据我的理解,对于我们的用例,WAF 不能很好地扩展。

WAF 不是该工作的正确工具。

首先,即使最多有 10 条规则,每条规则最多有 10 个条件,每个规则最多有 10 个过滤器,每个 AWS 账户也最多有 100 个字符串条件。

其次,条件和过滤器不能很好地组合我们的用例。规则的条件由 AND 组成,条件的过滤器由 OR 组成。例如,像 r(x) := (x=a + x=b + x=c) * (x=d + x=e) 这样的规则会给出 r(d) = false 而无需测试 x=d.