我正在尝试配置 Amazon ALB(应用程序负载均衡器,而不是“经典”ELB)以使用 Web 应用程序防火墙(WAF)拒绝包含潜在 XSS 或 SQL 注入负载的 https 请求。
我在 WAF 中配置了 XSS 规则
- 正文包含跨站点脚本威胁。
- 查询字符串解码为 URL 后包含跨站点脚本威胁。
以及 SQL 注入规则
- 正文包含 SQL 注入威胁。
- 查询字符串解码为 URL 后包含 SQL 注入威胁。
当我浏览到 ALB 后面的 Web 应用程序的登录表单并提交用户名时
<script>danger</script>
ALB 按预期拦截请求并返回 HTTP 403 状态。
但是,当我提交用户名时
Robert'); DROP TABLE students;--
我从 Web 应用程序收到一个错误,指示用户名和密码无效,而不是预期的 HTTP 403。
为什么 XSS 规则可以有效工作,而类似创建的 SQL 注入规则却无法阻止输入(这是 SQL 注入的典型示例)?我是否需要以某种方式设置该规则?将 WAF 应用于 ALB 是否存在任何已知问题(我知道集成非常新,所以我猜想可能存在一些错误)。