网络安全实入门| 剖析HTTP慢速攻击(Slowloris)与Nginx防护配置

一、HTTP慢速攻击的核心原理

HTTP慢速攻击(如Slowloris)是一种应用层拒绝服务攻击(DoS),其核心在于合法但缓慢地占用服务器资源,导致正常请求无法被处理。攻击者通过以下方式实现目标:

  1. 协议漏洞利用:利用HTTP协议对请求完整性的依赖,例如不发送完整的请求头(如缺少\r\n\r\n结尾标识),使服务器持续等待数据。

  2. 连接资源耗尽:通过建立大量半开连接(如设置Keep-Alive),占用服务器的并发连接上限(如Nginx的worker_connections限制),导致新请求被阻塞。

  3. 低带宽消耗:每个连接仅以极低速率发送少量数据(如每10秒发送1字节),绕过传统流量型DDoS防御机制。

二、HTTP慢速攻击的三大类型及特点
  1. Slow Headers(Slowloris)

    • 攻击方式:持续发送未完成的HTTP头部(如缺少\r\n\r\n),占用服务器连接池。

    • 关键特征:利用Web服务器必须接收完整头部才能处理请求的机制。

    • 示例:攻击工具slowhttptest-H模式可模拟此类攻击。

  2. Slow Body(HTTP POST攻击)

    • 攻击方式:声明一个超大的Content-Length(如100MB),随后以极慢速度发送数据体(如每10秒发送1字节)。

    • 防御难点:服务器需为每个连接分配内存缓冲区,长时间占用内存资源。

  3. Slow Read攻击

    • 攻击方式:通过调整TCP窗口大小(如设置为512字节),强制服务器将大文件拆分为多个小包发送,客户端以极低速率接收,导致响应数据长期滞留服务器内存。

三、Nginx防护配置的关键点

针对上述攻击,Nginx可通过以下配置增强防护:

  1. 超时时间控制

    • client_header_timeout:设置接收完整HTTP头部的超时时间(如10秒),超时则断开连接。

    • client_body_timeout:限制请求体的传输时间(如20秒),防止Slow Body攻击。

  2. 连接与请求限制

    • 连接数限制:使用limit_conn_zonelimit_conn模块,限制单个IP的并发连接数(如每个IP最多5个连接)。

    • 请求速率限制:通过limit_req_zonelimit_req限制请求频率(如每秒10次),结合burst缓冲队列处理突发流量。

  3. 缓冲区优化

    • client_header_buffer_sizelarge_client_header_buffers:限制请求头大小(如1KB),防止超大头部耗尽内存。

    • client_max_body_size:限制请求体大小(如2MB),拒绝异常大文件上传。

  4. 临时文件与内存管理

    • client_body_in_file_only clean:将请求体写入临时文件而非内存,减少内存占用。

    • client_body_temp_path:指定临时文件存储路径,避免磁盘I/O瓶颈。

四、综合防御策略
  1. 多层防护架构

    • 结合反向代理(如Nginx)与负载均衡器分散压力,同时部署Web应用防火墙(WAF)识别异常连接模式。

  2. 自动化监控与黑名单

    • 监控连接数和请求速率,自动封禁异常IP(如连续发送未完成头部的IP)。

  3. 协议层加固

    • 禁用不必要的HTTP方法(如TRACE),升级至支持异步I/O的Web服务器(如Nginx的epoll模型)。

🔥 下期预告:从防护到溯源:HTTP慢速攻击的深度对抗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/977572.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MagicArticulate: 超48K海量数据革新3D动画,自回归Transformer驱动关节智能生成!

论文链接:https://arxiv.org/pdf/2502.12135 Git链接:https://chaoyuesong.github.io/MagicArticulate/ 亮点直击 首个大规模关节化基准数据集,包含超过33,000个具有高质量关节标注的模型; 一种新颖的两阶段框架,有效…

【洛谷入门赛】B4019 皆与生物有缘

题意 两个老师会对你进行打分,我们要做的是把两个老师每题给的分全加起来,然后 2 \div 2 2 再向上取整,输出这个值即可。 思路 首先,我们要输入。 根据我们总结的题意,我们还需要把所有分数加起来。 因为我们尽…

如何选择更安全的无人自助管理私人影院物联网框架?

对于无人自助管理的私人电影院来说,安全是至关重要的,在物联网层面上,更要确保其相关安全措施,才能更好地安全运转。选择更安全的无人自助管理私人影院物联网框架时,可以从以下几个关键方面进行评估: 1. 安…

基本网络安全的实现

基本网络安全的实现 一 :AAA AAA 是Authentication,Authorization and Accounting(认证、授权和计费)的简 称,它提供了一个用来对认证、授权和计费这三种安全功能进行配置的一致性框架, 它是对网络安全…

【大模型】Ubuntu下 fastgpt 的部署和使用

前言 本次安装的版本为 fastgpt:v4.8.8-fix2。 最新版本fastgpt:v4.8.20-fix2 问答时报错,本着跑通先使用起来,就没有死磕下去,后面bug解了再进行记录。   github连接:https://github.com/labring/FastGPT fastgpt 安装说明&…

python--泰坦尼克号人员存活模型训练+预测

1.先到Kaggle平台下载关于泰坦尼克号的数据。 泰坦尼克号数据集:这是Kaggle上的经典数据集,用于预测乘客是否幸存。 地址:Titanic - Machine Learning from Disaster | Kaggle 包含以下文件: train.csv:训练集&#…

【Azure 架构师学习笔记】- Azure Databricks (12) -- Medallion Architecture简介

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (11) – UC搭建 前言 使用ADB 或者数据湖,基本上绕不开一个架构“Medallion”, 它使得数据管理更为简单有效。ADB 通过…

spring中的注解介绍

本篇文章专门用来介绍spring中的各种注解。 1、RestController 1、含义 2、举例 3、使用场景 RestController 通常用于开发 RESTful API,适合返回 JSON 或 XML 数据的场景 4、总结 RestController 是 Spring 中用于简化 RESTful Web 服务开发的注解,它结…

嵌入式开发:傅里叶变换(5):STM32和Matlab联调验证FFT

目录 1. MATLAB获取 STM32 的原始数据 2. 将数据上传到电脑 3. MATLAB 接收数据并验证 STM32进行傅里叶代码 结果分析 STM32 和 MATLAB 联调是嵌入式开发中常见的工作流程,通常目的是将 STM32 采集的数据或控制信号传输到 MATLAB 中进行实时处理、分析和可视化…

Linux设备驱动开发-SPI驱动开发详解(包含设备树处理详细过程)

基础知识及 SPI 相关结构体介绍 引脚:MISO(master 输入,slave 输出),MOSI(master 输出,slave 输入),片选引脚,SCK(时钟) 控制寄存器&…

嵌入式八股文(五)硬件电路篇

一、名词概念 1. 整流和逆变 (1)整流:整流是将交流电(AC)转变为直流电(DC)。常见的整流电路包括单向整流(二极管)、桥式整流等。 半波整流:只使用交流电的正…

C++初阶——简单实现stack和queue

目录 1、Deque(了解) 1.1 起源 1.2 结构 1.3 优缺点 1.4 应用 2、Stack 3、Queue 4、Priority_Queue 注意:stack,queue,priority_queue是容器适配器(container adaptor) ,封装一个容器,按照某种规则使用&#…

【Git】六、企业级开发模型

文章目录 Ⅰ. 前言Ⅱ. 系统开发环境Ⅲ. Git 分支设计规范master分支release分支develop分支feature分支hotfix分支 Ⅰ. 前言 ​ 我们知道,一个软件从零开始到最终交付,大概包括以下几个阶段:规划、编码、构建、测试、发布、部署和维护。 ​…

Apache SeaTunnel 构建实时数据同步管道(最新版)

文章作者 王海林 白鲸开源 数据集成引擎研发 Apache SeaTunnel Committer & PMC Member,Apache SkyWalking Committer,多年平台研发经验,目前专注于数据集成领域。 导读 在当今数字化快速发展的时代,数据已然成为企业决策…

在 Windows 上配置 Ollama 服务并开放局域网访问

为了在局域网内共享 Ollama 服务,我们需要完成以下两步: 1、设置 Ollama 的环境变量 OLLAMA_HOST,使其监听局域网的 IP 地址。 (1) 配置 Ollama 服务的监听地址 Ollama 服务使用环境变量 OLLAMA_HOST 来指定监听的地…

错误 MSB3073 命令“setlocal“

最近在搞opencv的c版本。报了这个错很头疼。 点击项目>属性 把这里命令行删掉就行。

【时时三省】(C语言基础)常量和变量

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 在计算机高级语言中,数据有两种表现形式:常量和变量。 常量 在程序运行过程中,其值不能被改变的量称为常量。数值常量就是数学中的常数。 常用的常量有以…

deep-research 专用评测数据集

Deep Research自2025年2月初由OpenAI推出后迅速引发全球关注,其通过端到端强化学习技术实现多步骤研究任务自动化,能在数十分钟内生成分析师水平报告,效率远超人类(耗时从30分钟到30天不等),被学者评价为“…

WordPress平台如何接入Deepseek,有效提升网站流量

深夜改代码到崩溃?《2024全球CMS生态报告》揭露:78%的WordPress站长因API对接复杂,错失AI内容红利。本文实测「零代码接入Deepseek」的保姆级方案,配合147SEO的智能发布系统,让你用3个步骤实现日均50篇EEAT合规内容自动…