Daily Study
更新: 11/27/2025 字数: 0 字 时长: 0 分钟
Daily Plan
#todo
DDOS 防护
HTTP和HTTPs Flood的防护
HTTP Flood 和 HTTPS Flood 都属于应用层拒绝服务(DDoS)攻击,旨在耗尽服务器的资源(CPU、内存、带宽、进程/线程)或应用本身的资源(数据库连接、业务逻辑处理能力)。HTTPS Flood 增加了 SSL/TLS 加密和解密的开销,它对服务器 CPU 的消耗通常比纯 HTTP Flood 更高。
防护的话主要分为三个层次:网络流量清洗、中间件/WAF、应用层防护
网络流量清洗和过滤
- DDos清洗服务(CDN、WAF),使用专业的DDos高防服务
- 边界流量速率限制:在负载均衡器 (LB) 或防火墙上,对来自单个 IP 地址、单个地理区域或特定特征的请求设置请求速率限制
- SYN Flood链接限制:HTTP Flood 通常会建立完整的 TCP 连接,但基础设施应该针对 SYN/TCP 连接进行硬性限制,防止连接数本身被耗尽。
- HTTP/2 请求限制:限制客户端每个连接允许的最大请求数、头大小、帧速率等,以防止利用 HTTP/2 的多路复用特性进行攻击。
中间件和WAF
- 行为分析:使用 AI 或机器学习模型,分析请求的频率、User-Agent、Referer、请求头顺序等特征,对可疑流量进行评分并阻止。
- 限制并发连接:在 Nginx/Apache/Envoy 等代理上,限制单个 IP 或会话的最大并发连接数,防止攻击者建立大量连接占用资源。
- 强制执行HTTP规范:拒绝任何不符合 RFC 规范的请求,如异常长度的 Header、畸形的 URL 或非标准的 HTTP 方法。
- Header检查和白名单
应用层保护
- 验证码:对于登录、注册等高价值或易受攻击的端点,引入验证码挑战。虽然会影响用户体验,但能有效区分人和脚本。
- 会话、业务速率限制:在应用代码层面,限制已认证用户在特定时间窗口内执行某项操作(如发帖、搜索)的次数,防止业务滥用。
- 连接池限制:限制数据库连接池和线程池的大小。即使请求到达应用,也要确保资源(如 DB)不会被过度消耗而崩溃,而是平稳地返回 503 错误
- 页面缓存策略:对静态内容和不常更新的动态内容使用 CDN 缓存。攻击流量打到缓存层,不会触及后端应用服务器。
