Maison > base de données > tutoriel mysql > `mysql_real_escape_string()` est-il vraiment sécurisé contre l'injection SQL ?

`mysql_real_escape_string()` est-il vraiment sécurisé contre l'injection SQL ?

Patricia Arquette
Libérer: 2024-12-02 16:09:14
original
531 Les gens l'ont consulté

Is `mysql_real_escape_string()` Truly Secure Against SQL Injection?

Résoudre les défauts de mysql_real_escape_string()

Malgré son utilisation généralisée dans les applications PHP, certains ont soulevé des inquiétudes concernant les vulnérabilités de sécurité de mysql_real_escape_string( ). Cette fonction est conçue pour empêcher les attaques par injection SQL en échappant aux caractères spéciaux dans les entrées utilisateur.

Mysql_real_escape_string() est-il totalement inadéquat ?

La documentation de l'API MySQL C reconnaît un potentiel problème avec mysql_real_escape_string(). Il suggère d'éviter l'utilisation des instructions SET NAMES/SET CHARACTER SET pour modifier le jeu de caractères de la connexion. Au lieu de cela, la fonction mysql_set_character_set() doit être appelée avant d'utiliser mysql_real_escape_string().

Proof Code

La fonction PHP mysql_set_charset() modifie le jeu de caractères utilisé par mysql_real_escape_string (). Ceci est illustré dans l'extrait de code suivant :

<?php
// Connect to MySQL and select the database
$link = mysqli_connect("localhost", "user", "password", "database");

// Set the character set for the connection
mysql_set_charset($link, "utf8");

// Escape the input using mysql_real_escape_string()
$escaped_input = mysql_real_escape_string($link, $input);

// Use the escaped input in a SQL query
$query = "SELECT * FROM table WHERE field = '$escaped_input'";
Copier après la connexion

En suivant cette approche, le jeu de caractères utilisé par mysql_real_escape_string() peut être explicitement défini, garantissant que les caractères spéciaux sont correctement échappés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal