De acordo com este artigo Artigo sobre Injeção de SQL :
<…> the operations mostly used for breaking\fuzzing the SQL query’s are.
'
Single quote"
Double Quote\
Backslash (MySQL Escape character)
Também há caracteres codificados hexadecimais (por exemplo, 0x3a3a
) às vezes.
Eu quero registrar e eliminar todos os pedidos que contenham esses itens. Aqui está onde eu estou até agora:
set $susp 0;
if ($request_uri ~ "%27") {
set $susp 1;
}
location ~ \.php {
if ($susp = 1) {
access_log /var/log/nginx/for-review.log;
return 500;
}
# further fastcgi configuration
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
(Eu entendo que se é mal , mas se pareceu necessário )
Isso não é acionado em /foo/ba'r
, mas pelo menos funciona bem em /?foo=b'ar
. Mas é isso: os outros personagens que eu tento não são acionados.
Veja o que tentei:
$request_uri ~ "%27|%22"
: trabalhos únicos, o dobro não $request_uri ~ "%27|\""
: trabalhos únicos, o dobro não $request_uri ~ "%27|0x"
: ambos funcionam, mas 0x
obtém falsos positivos em thumb = 230x240
E eu nem sei como vou abordar a barra invertida.
Vocês sabem como fazer isso funcionar?
P.S. Pensei em usar o Amazon WAS , mas ele requer outro serviço (Cloudflare ou balanceador de carga) para o qual ainda não estou pronto.
P.S. Eu percebo que outras medidas precisam ser tomadas; isto é suposto para deixar cair aquelas varreduras irritantes do GET. Também duvido que os visitantes legítimos acabem tendo aqueles enquanto estão navegando. Minha lógica era esta: qualquer barreira complicando o hack ajuda