"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > São `mysql_real_escape_string ()` e `mysql_escape_string ()` o suficiente para impedir ataques de injeção do MySQL?

São `mysql_real_escape_string ()` e `mysql_escape_string ()` o suficiente para impedir ataques de injeção do MySQL?

Postado em 2025-03-22
Navegar:192

Are `mysql_real_escape_string()` and `mysql_escape_string()` Enough to Prevent MySQL Injection Attacks?

ataques de injeção mysql: um mergulho mais profundo

introdução

garante que a segurança dos aplicativos da web é Crucial, e database, é uma vira Este artigo examina a eficácia do uso de mysql_real_escape_string () e mysql_escape_string () em salvaguardar contra ataques sql. mysql_escape_string () são comumente usados ​​para escapar de dados antes de inseri -los em consultas SQL. No entanto, essas funções são proteção suficiente contra todos os vetores de ataque? Isso ocorre porque apenas para escapar das variáveis ​​PHP dentro das consultas. Não pode lidar com os nomes de tabela ou colunas escape ou limitar campos. "ONDE " . mysql_real_escape_string ($ campo). "=". mysql_real_escape_string ($ value);

Esta consulta é vulnerável à injeção de SQL se o campo $ ou $ value contiver entrada maliciosa. Um hacker pode criar uma consulta maliciosa que ignora os comandos não autorizados. Isso pode expor todos os registros em uma tabela, potencialmente revelando informações confidenciais. Eles podem permitir que os hackers executem consultas SQL arbitrárias. mysql_real_escape_string ($ argv [1]), mysql_real_escape_string ($ argv [2]), mysql_real_escape_string ($ argv [3]));

entrada 1:

retorna URLs começando com "http://www.reddit.com"

Explorit)

entrada 3:

executa consultas sql inesperadas

The Solution: Preparado Secates

Os especialistas recomendam usar as estaturas preparadas em vez de funções de escova. As declarações preparadas são técnicas do lado do servidor que garantem que apenas o SQL válido seja executado. Essa abordagem fornece proteção abrangente contra injeções SQL, conhecidas e desconhecidas. $ coluna. '=? Limite? '; $ declaração = $ pdo-> preparar ($ sql); $ declaração-> Execute (array ($ valor, $ limite));

$sql = "SELECT number FROM PhoneNumbers " .
       "WHERE " . mysql_real_escape_string($field) . " = " . mysql_real_escape_string($value);
Tutorial mais recente Mais>

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