use o problema de codificação de caracteres para ignorar a injeção de SQL de mysql_real_escape_string ()
Considere o seguinte código PHP:
$ login = mysql_real_escape_string (getfropost ('login')); $ senha = mysql_real_escape_string (getfropost ('senha')); $ sql = "Selecione * da tabela onde login = '$ login' e senha = '$ senha'";
$login = mysql_real_escape_string(GetFromPost('login'));
$password = mysql_real_escape_string(GetFromPost('password'));
$sql = "SELECT * FROM table WHERE login='$login' AND password='$password'";
Método de ataque:
Os ataques de dependem das seguintes etapas:
Defina o conjunto de caracteres:
Selecione uma codificação (por exemplo, GBK), onde a mesma sequência de bytes representa caracteres não-ASCII e o backslash ASCII ('\').
Enviar Query: A carga útil escapada se torna parte da instrução SQL, permitindo que o invasor ignore a proteção esperada.
mysql_real_escape_string () seja escapado com base na codificação de conexão definida pelo cliente, em alguns casos, trata os caracteres multibyte inválidos como um único byte, incluindo o uso de , defina nomes
em vez de mysql_set_charset () case.
como resultado de:
Remedy:
use conjuntos de caracteres não vulneráveis, como UTF8MB4 ou UTF8, para mitigar esse problema. Ativar no__backslash_escapes O modo SQL também fornece proteção.
Exemplo seguro:
sempre defina o conjunto de caracteres corretamente usando
mysql_set_charset () ou parâmetros do conjunto de caracteres DSN da PDO. As declarações reais de pré -processamento em MySqli também são imunes a esse ataque.
para concluir:
mysql_real_escape_string () geralmente fornece proteção forte, é importante estar ciente de tais casos potenciais de borda para garantir a defesa completa contra a injeção de SQL.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3