"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 > Mysql_real_escape_string() pode ser usado com segurança com instruções preparadas personalizadas?

Mysql_real_escape_string() pode ser usado com segurança com instruções preparadas personalizadas?

Publicado em 13/11/2024
Navegar:119

Can mysql_real_escape_string() Be Used Safely with Custom Prepared Statements?

Mysql_real_escape_string() tem falhas incorrigíveis?

Alguns céticos afirmam que a função mysql_real_escape_string() é fundamentalmente falha e não pode proteger de forma confiável consultas SQL . Eles apontam artigos desatualizados como evidência.

Pode ser usado para declarações preparadas personalizadas?

Apesar dessas preocupações, ainda é possível aproveitar mysql_real_escape_string() para criar declarações preparadas de forma personalizada. No entanto, requer atenção cuidadosa ao manuseio do conjunto de caracteres. o conjunto de caracteres. Isso garante que também afeta o conjunto de caracteres usado por mysql_real_escape_string().

Exemplo de código:

#include int principal() { MYSQL *conn = mysql_init(NULL); mysql_real_connect(conn, "localhost", "usuário", "senha", "banco de dados", 0, NULL, 0); // Altere a codificação usando mysql_set_charset() mysql_set_charset(conn, "utf8"); // Crie uma instrução preparada personalizada usando mysql_real_escape_string() consulta de caracteres[1024]; mysql_real_escape_string(conn, query, "SELECT * FROM usuários WHERE nomedeusuario='teste'", sizeof(query)); //Executa a consulta mysql_query(conn, consulta); mysql_close(conn); retornar 0; }

Seguindo esta abordagem e evitando SET NAMES/SET CHARACTER SET, você pode utilizar efetivamente mysql_real_escape_string() para proteger suas consultas SQL contra injeções.

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