Web App Firewall 如何防止 SQL 注入?

How does Web App Firewall protect from SQL Injection?

我听说 Azure App Gateway 的 Web App Firewall 能够保护应用程序免受 SQL 注入攻击。它是如何实现的?

它是否检查所有传入的有效负载(正文和 URL 参数)?如果是这样,我假设必须在应用程序网关级别设置 TLS 终止,否则它将无法读取任何内容。它是否只是在有效载荷中寻找一些可疑的字符串(比如“;DROP TABLE...”)?它如何知道有效负载中的内容是否安全?我的意思是,我可能会向我的 Web 应用程序发送一些负载,看起来像 SQL 注入 - WAF 如何知道哪个请求是攻击,哪个不是?

这是 OWASP 用于创建 SQL 注入规则的参考列表 material。本质上,它正在查看查询以查看其中是否有任何可疑内容(试图混淆命令的注释、错误位置的反引号、试图获取 server/host 信息等)。这是一个很长的列表,太长了,无法在此处描述,但参考站点可能比原始规则更容易理解。

参考文献(来自规则代码):