Possiedo un firewall con alcune ispezioni dei pacchetti configurate per rilevare gli attacchi SQL Injection. (Dell SonicWall NSA 3500) Esiste una regola (URI di richiesta HTTP con istruzione SQL (IF) 2) che sembra considerare qualsiasi stringa come un attacco se "e" o "o" o alcune altre parole sono in una stringa di query.
Ho un sito web ospitato dietro il firewall. Ha una funzione di ricerca. Un utente digita una frase in una casella di testo e questa stringa viene inviata al server, dove viene analizzata, divisa, massaggiata e compilata in una destinazione di ricerca per individuare le entità nel sistema che hanno contenuto conforme alla richiesta di ricerca immessa da l'utente.
La stringa è pubblicata in una richiesta GET. Se provo a trovare il contenuto con "questo o quello" il firewall vede "OR" e lascia cadere la richiesta, perché a volte puoi scrivere query SQL che hanno "o" in esso, immagino.
Sono in grado di modificare i miei sistemi per risolvere questo problema. Non sono interessato, qui, a trovare modi per far funzionare il mio sistema. Sono, invece, interessato a capire perché la regola è stata inclusa, e se è una buona cosa includere.
È una regola del firewall che dice qualcosa come "qualsiasi stringa di richiesta che abbia qualche parola che possa essere usata per costruire una malvagia dichiarazione SQL ritenuta malvagia, essa stessa" una regola ragionevole?