问题描述
我正在建立一个网站来进行调查,这将存储一些答案和用户数据。显然,我想保持低成本并在免费套餐提供的范围内。我正在尝试构建一个用于减轻 DDoS 攻击的低成本解决方案。这是我想出的,但不确定我是否朝着正确的方向前进。我计划将我的前端和后端服务置于 CloudFront 之后。我会把 AWS WAF 和 Shield 放在这个 CloudFront 上。除此之外,我计划添加两个 WAF 规则:
- 每个请求都应该有一个“user-agent”标头
- 请求应仅来自特定国家/地区,即 我的目标受众
除此之外,我还计划添加一个 Recaptcha,以确保只有人类用户才能与我的应用程序进行交互,作为从成本角度来看的一种威慑。任何其他建议或反馈都非常感谢。请注意:成本是一个重要因素。
解决方法
AWS Shield、CloudFront 和 WAF 应该足以满足您的使用案例。使用地理限制,但我认为标题检查不会增加任何价值,因为它很容易被欺骗。此外,您可能会考虑为后端使用自动扩展以实现更大的弹性,但要注意扩展成本,制定适当的扩展策略并设置警报(如果您还没有的话,尤其是计费警报)和扩展事件的通知.
,FluxCDN、DDoS-Guard、Cloudflare、Stackpath 都是不错的选择。
- 使用 GEO 限制(中国、印度...)并挑战请求(验证码)。
- 如果您不需要它们,请阻止来自机器人的空用户代理和用户代理,例如“python-requests”。
- 如果某个 IP 达到阈值(速率限制),则阻止该 IP 访问您的站点。
- 阻止不良 ASN 访问您的网站。
- 使用 JS 质询来质询请求的合法性。
- 缓存静态文件(png、html、...)
- 在不需要时阻止 HTTP/1.0 HTTP/1.1 HTTP/1.2(阻止 99% 的所有 DDoS 攻击)