Web 应用防火墙(WAF)
Web 应用防火墙(WAF)可在请求到达上游服务之前检查 API 流量中的常见 Web 攻击。在 API7 网关中,WAF 最适合作为纵深防御模型的一层,与身份认证、授权、限流、日志记录和安全凭证管理配合使用。
WAF 保护数据面上已发布的 API 流量。它不同于控制面 IP 限制、审计日志和凭证存储加固等平台安全控制。
何时使用 WAF
当你需要保护暴露给不受信任客户端的 HTTP API 时,WAF 尤其有用,例如:
- 面向互联网公众或合作伙伴的 API。
- 处理敏感客户或业务数据的应用。
- 需要防范 SQL 注入、跨站脚本(XSS)和恶意载荷探测等常见攻击类型的环境。
- 希望在上游服务之前部署专用安全层,而不把所有过滤逻辑都放入应用代码的团队。
WAF 能做什么、不能做什么
WAF 是 API 网关控制的补充,但不能取代这些控制。
| 控制 | 主要用途 |
|---|---|
| WAF | 检查请求中的恶意模式,并阻止或监控可疑流量。 |
| 身份认证 | 验证客户端身份。 |
| ACL 和权限策略 | 决定哪些已认证客户端可以访问哪些 API。 |
| 限流 | 防止服务受到滥用、突发流量和过量请求的影响。 |
| 数据脱敏 | 防止敏感请求数据暴露在日志中。 |
当问题是威胁检查时使用 WAF;当问题涉及身份、授权或滥用控 制时,使用身份认证、ACL 和限流。
API7 网关当前的 WAF 支持
API7 网关通过 chaitin-waf 插件与长亭 WAF(雷池 SafeLine)直接集成。
在此模式下:
- API7 网关将匹配的请求转发到 WAF 服务进行检查。
- WAF 服务决定允许还是拒绝请求。
- 可以先在
monitor模式下观察检测结果,再切换到block模式。 - 共享的 WAF 连接设置通过插件元数据配置,执行策略则在挂载插件的位置启用。
这样无需修改上游应用程序,即可在网关层增加 WAF 防护。
API7 网关运行时还支持通用 wasm 插件,因此高级部署可以采用基于 WASM 的 WAF 集成,例如通过 coraza-proxy-wasm 使用 Coraza。
这种方式与 chaitin-waf 不同:
- 在网关运行时配置中加载 WASM 模块。
- 与其他网关插件一样,将生成的插件挂载到路由、服务或其他受支持的作用域。
- 由你自行管理 WAF 模块制品及其配置。
可以通过网关的 WASM 扩展机制集成 Coraza,但当前文档集对它的说明不如 chaitin-waf 完整。
建议的上线方式
- 从面向互联网的路由和高价值 API 开始。
- 先使用
monitor模式,了解 WAF 在真实流量中标记的内容。 - 与应用和安全团队 共同审查检测结果,调整规则并减少误报。
- 理解策略后,将选定 API 切换到
block模式。 - 将 WAF 与身份认证、ACL 和限流结合使用,不要把它作为独立的安全控制。
实施指南
请选择与部署模型匹配的方式:
- 如需与 API7 网关直接集成,请参阅长亭 WAF(雷池 SafeLine)插件参考。
- 如果你能够在网关运行时中管理 Proxy-WASM 模块,可以使用 Coraza 等基于 WASM 的 WAF。有关背景信息,请参阅 APISIX 指南集成 Coraza。
准备生产上线时,应将 WAF 纳入部署的整体安全审查,而不是将其视为孤立功能。
后续步骤
- 生产中运行——查看生产环境安全检查清单。
- 访问控制列表(ACL)——限制哪些消费者可以调用受保护的 API。
- 配置数据脱敏——避免敏感请求数据进入日志。
- 长亭 WAF(雷池 SafeLine)插件参考——使用
chaitin-waf配置 WAF 防护。