什么是 HTTP GET/POST 洪水攻击?

信息安全 攻击 http 拒绝服务 洪水
2021-09-02 19:31:03

我想知道 HTTP GET 和 POST 洪水攻击和缓解策略之间的主要区别是什么。

我搜索了很多,但我真的找不到一些关于这些攻击的好文章或例子。

3个回答

当 HTTP 客户端(例如,Web 浏览器)与 HTTP 服务器(Web 服务器)通信时,它会发送多种类型的请求,其中两种主要是GETPOST. GET请求是用于“正常链接”的内容,包括图像此类请求旨在检索静态数据,URL 指向该数据。当您在 URL 栏中输入 URL 时,aGET也已完成。

POST请求与表单一起使用。请求包含POST参数,这些参数通常取自同一页面上的输入字段。

泛洪时,攻击者希望将目标服务器淹没在众多请求之下,从而使其计算资源饱和。当服务器分配大量资源以响应单个请求时,泛洪效果最佳。由于POST请求包含参数,它们通常会在服务器上触发相对复杂的处理(例如数据库访问),这对于服务器来说比服务更简单的GET. 因此,POST基于 - 的泛洪往往比GET基于 - 的泛洪更有效(如果请求为 ,则淹没服务器所需的请求更少POST)。另一方面,GET请求更为常见,攻击者通常更容易获得(非自愿的)帮助来进行泛洪攻击GET-flooding(正如@Rory 所说,它只需要一个流行站点上的内嵌图像的链接,并且浏览该站点的每个人都会自动向GET目标服务器发送请求)。

(当然,任何特定的网站都可以对一些特定的GET请求进行很多复杂的处理;我在这里只讨论平均行为。)

HTTP 泛洪(对于任何 HTTP 请求类型)的一个有趣问题是它们倾向于击败许多 IPS(入侵保护服务),因为它们中的大多数倾向于专注于基于 TCP 的拒绝服务攻击。您可以编写 IPS 规则来检测 HTTP 洪水攻击,但必须非常小心,因为在某些情况下它们很难与真实流量区分开来。

阅读这篇关于各种形式的 HTTP 请求方法的wiki 文章我遇到的大多数开发人员都没有意识到除了 POST 和 GET 之外还有其他方法。

实际上,这两者之间的唯一区别将是使用的 HTTP 方法(GET 与 POST)。就攻击的简易性而言,还有更多基于 GET 的攻击可行的场景(例如,在链接到目标站点的流行站点上嵌入内嵌图像可能会导致 DoS),但除此之外,如果您寻找通用的有关 HTTP DoS 攻击的文章,它们可能同样适用于两者。