Estou tentando configurar um ALB da Amazon (Application Load Balancer, não "clássico" ELB) para usar o Web Application Firewall (WAF) para rejeitar solicitações https que contenham potenciais cargas de XSS ou SQL Injection.
Eu configurei no WAF uma regra XSS
e uma regra de injeção de SQL
Quando eu navego até o formulário de login de um aplicativo da Web atrás do ALB e envio o nome de usuário
<script>danger</script>
o ALB intercepta a solicitação como esperado e retorna um status HTTP 403.
No entanto, quando envio o nome de usuário
Robert'); DROP TABLE students;--
Eu recebo um erro do aplicativo da web indicando um nome de usuário e senha inválidos, em vez do HTTP 403 esperado.
Por que a regra do XSS pode funcionar de maneira eficaz, enquanto a regra de Injeção de SQL criada de forma semelhante não interrompe a entrada que é um exemplo clássico de injeção de SQL? Eu preciso definir essa regra de alguma forma diferente? Quaisquer problemas conhecidos que aplicam o WAF ao ALB (sei que a integração é muito nova, portanto, suponho que possa haver alguns bugs).