如何保护无服务器框架端点免受滥用/DoS?

How to protect Serverless Framework endpoints from abuse / DoS?

我计划进行以下设置:

  1. 完全静态的前端 Web 界面(用 AngularJS 或类似的构建)
  2. 无服务器框架后端APIs

我想将前端存储在 S3 中,将后端存储在 Lambda 中。 由于每次执行 lambda 函数时我都会付费,所以我不希望每个人都能够直接向它发出请求。另一方面,我想将我的前端简单地存储在 S3 中而不是服务器中。

如何保护我的后端 API 免受滥用或 DoS?

我不确定您是否可以保护您的前端免受人们过度调用它的影响,因为这很难确定。

然而,对于真正的 DDoS 或 DoS 保护,您可能希望使用 features of API Gateway (check the question about threats or abuse) or AWS's new WAF。我知道 WAF 可以屏蔽 IP 地址范围等。

@Boushley 所说的 +

您可能想查看 Cloudflare:https://www.cloudflare.com/ddos

实际上,Amazon API 网关会自动保护您的后端系统免受分布式拒绝服务 (DDoS) 攻击,无论是伪造请求(第 7 层)还是 SYN 泛洪(第 3 层)攻击。

在您的 serverless.yml 中,您现在可以提供 provider.usagePlan 属性,假设您使用的是 AWS。

provider:
  ...

  usagePlan: # limit expenditures
    quota:
      limit: 5000
      period: DAY
    throttle:
      burstLimit: 200
      rateLimit: 100

虽然这并不意味着您不会受到 DDoSed(正如@mrBorna 提到的 AWS 默认试图阻止这种情况),但这应该意味着如果您受到 DDoSed,从财务角度来看您不会受到重大影响。