Web应用防火墙(WAF)主要用于防护针对Web应用程序的各类攻击,其核心能力集中在应用层(OSI第7层)。以下是WAF能够防护的主要攻击类型及防护原理:

1. 注入攻击(Injection Attacks)
- SQL注入(SQLi)
WAF检测请求中的恶意SQL语法(如' OR 1=1 --
),阻止非法数据库查询。 - 命令注入(OS Command Injection)
拦截包含系统命令(如; rm -rf /
)的输入,防止执行恶意操作系统指令。 - 其他注入(LDAP、XPath等)
过滤特殊字符和异常查询结构。
2. 跨站脚本攻击(XSS)
- 反射型/存储型/DOM型XSS
检测请求和响应中的<script>
标签、javascript:
协议或恶意事件处理器(如onerror=
),阻止脚本在用户浏览器执行。
3. 跨站请求伪造(CSRF)
- 通过验证请求来源(如
Referer
头)或检查CSRF令牌(需结合应用逻辑)来拦截伪造的会话请求。
4. 文件与路径遍历攻击
- 本地文件包含(LFI)/远程文件包含(RFI)
阻止包含../
、/etc/passwd
等敏感路径的请求。 - 目录遍历(Directory Traversal)
过滤异常路径跳转字符,限制访问Web根目录外的文件。
5. 不安全直接对象引用(IDOR)
- 检测异常参数(如
user_id=1234
被篡改为user_id=5678
),防止未授权访问资源。
6. 安全配置漏洞
- 不安全的HTTP方法
拦截危险方法(如PUT
、DELETE
)或强制使用安全头部(如Content-Security-Policy
)。 - CORS配置错误
验证跨域请求的合法性,阻止恶意域名访问。
7. 敏感数据泄露
- 数据泄露防护
屏蔽响应中的敏感信息(如信用卡号、身份证号),或对错误页面进行内容过滤。
8. API滥用
- 参数篡改/未授权访问
验证API请求格式、参数合法性及身份认证(如JWT令牌校验)。 - 批量请求攻击
限制API调用频率,防止数据爬取或资源耗尽。
9. 应用层DDoS攻击
- HTTP洪流(CC攻击)
基于速率限制、IP信誉库或行为分析识别异常流量(如短时间内大量GET /login
请求)。
10. 其他高级攻击
- Webshell上传
检测文件上传中的恶意代码(如<?php system($_GET['cmd']); ?>
)。 - 零日漏洞利用
通过机器学习或行为分析识别异常请求模式(如异常参数长度或编码方式)。 - 暴力破解
限制登录/注册页面的尝试频率(如同一IP每秒不超过5次请求)。
WAF的局限性
- 无法防护所有攻击:如业务逻辑漏洞、社会工程攻击等需结合其他措施(如代码审计、安全意识培训)。
- 规则依赖:需定期更新规则库以应对新型攻击。
- 性能影响:配置不当可能导致误拦截或延迟。
最佳实践
- 多层防御:结合防火墙、IDS/IPS、加密传输(HTTPS)等。
- 自定义规则:根据业务需求调整WAF策略(如放行特定API路径)。
- 日志监控:分析拦截日志,优化规则并发现潜在威胁。
通过合理配置,WAF能有效降低Web应用风险,但需作为整体安全体系的一部分运行。