如何使用 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 是否适合我的用例,这与上面的用例有点不同。
- 在我工作的公司,我们打算通过 JS 小部件销售数据。
- 我们想限制对这些数据的访问,以便只有授权的 REFERER 才能向他们的用户显示我们的数据,同时拒绝所有其他 REFERER。
- 欺骗 REFERER 的可能性对我们来说不是一个重要的威胁。
- 我们预计我们的客户群会增加到数百人。
我问这个问题的原因是注意到 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
.
有一个 AWS 文档解释了如何自己做,即如何只允许一个页面盗链并拒绝所有其他页面:https://aws.amazon.com/blogs/security/how-to-prevent-hotlinking-by-using-aws-waf-amazon-cloudfront-and-referer-checking/
我想知道 WAF 是否适合我的用例,这与上面的用例有点不同。
- 在我工作的公司,我们打算通过 JS 小部件销售数据。
- 我们想限制对这些数据的访问,以便只有授权的 REFERER 才能向他们的用户显示我们的数据,同时拒绝所有其他 REFERER。
- 欺骗 REFERER 的可能性对我们来说不是一个重要的威胁。
- 我们预计我们的客户群会增加到数百人。
我问这个问题的原因是注意到 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
.