【问题标题】:How do I prevent DoS and BruteForce attacks directed to a REST service如何防止针对 REST 服务的 DoS 和 BruteForce 攻击
【发布时间】:2013-08-23 05:17:42
【问题描述】:

需要保护 RESTful 服务免受

  1. DoS(不必要的请求等)
  2. 蛮力(登录尝试等)

攻击。是否有任何有意义的理由在 REST 服务内进行这种预防,或者通常认为它是由防火墙或较低的 OSI 级别(例如级别 3 -> 路由器)完成的。

我认为 REST 服务本身的预防比防火墙或路由器要精确得多。这意味着防火墙可能只会在每个时间单位的请求过多后阻止客户端一段时间。在服务端,客户端可以在三次无效登录尝试后被阻止。

但是我如何在 REST 服务端实现这一点。由于 REST 服务不保留任何客户端数据,因此需要创建静态缓存或某事。别的。在 REST 服务中安装攻击防护的推荐方法是什么?

【问题讨论】:

    标签: security rest firewall brute-force denial-of-service


    【解决方案1】:

    外部软件/硬件。为什么 ?原因很简单,您希望保护您的服务免受不必要的工作量的影响,而当您的服务完成检查时,您并没有保护它,只会让情况变得更糟。因此,DDoS 攻击应该在它们到达您的服务之前停止,因为当它们到达您的服务时,它们会消耗资源。

    当然,您可以使用多级安全性,而除了防火墙之外,您还可以通过服务进行一些检查,但它应该是附加解决方案而不是主要解决方案。防火墙软件/硬件旨在处理和阻止大量负载,而您的 REST 服务则不是。

    【讨论】:

    • 好的。已安装的防火墙会阻止 DoS 攻击,因此无需在应用程序端执行此操作。因此,只有暴力登录尝试需要被服务阻止。但如何做到最好?只是在数据库中保留#failedLoginAttempts 列?
    • 基本上是的。它应该由用户名或 IP 地址或两者都键入。当块期过去时清除这些行(它可以防止您的数据库因多次尝试而过载)。尽量不要向攻击者提示他还剩多少次尝试。记住 cookie/headers/browser 代理字符串归攻击者所有,不要信任它们。
    猜你喜欢
    • 1970-01-01
    • 2018-12-27
    • 2012-01-26
    • 2016-09-12
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2011-12-19
    相关资源
    最近更新 更多