Tengo un firewall con algunos paquetes de inspección configurados para detectar ataques de Inyección de SQL. (Dell SonicWall NSA 3500) Hay una regla (URI de solicitud HTTP con declaración SQL (IF) 2) que parece considerar cualquier cadena como un ataque si "y" o "o" o algunas otras palabras están en una cadena de consulta.
Tengo un sitio web alojado detrás del firewall. Tiene una función de búsqueda. Un usuario escribe una frase en un cuadro de texto y esta cadena se envía al servidor, donde se analiza, se divide, se da masajes y se compila en un objetivo de búsqueda para ubicar entidades en el sistema que tienen contenido conforme a la solicitud de búsqueda ingresada por el usuario.
La cadena se publica en una solicitud GET. Si intento encontrar contenido con "esto o aquello", el firewall ve "O" y descarta la solicitud, porque a veces puedes escribir consultas SQL que tengan "o", supongo.
Puedo modificar mis propios sistemas para resolver este problema. Aquí no estoy interesado en encontrar formas de hacer que mi sistema funcione. En cambio, estoy interesado en comprender por qué se ha incluido la regla y si es bueno incluirla.
¿Una regla de firewall que dice algo así como "cualquier cadena de solicitud que tenga alguna palabra que pueda usarse para construir una declaración SQL malvada se considera mala, en sí misma" una regla razonable?