Maison > base de données > tutoriel mysql > le corps du texte

Les déclarations préparées ont-elles besoin de « mysql_real_escape_string() » pour la sécurité ?

Patricia Arquette
Libérer: 2024-11-01 23:50:29
original
270 Les gens l'ont consulté

Do Prepared Statements Need `mysql_real_escape_string()` for Security?

Utilisation de mysql_real_escape_string avec des instructions préparées

Question :

Est-il nécessaire d'utiliser la fonction mysql_real_escape_string() lors de l'utilisation de la fonction préparée instructions pour les requêtes de base de données ?

Contexte :

Le code fourni illustre une requête d'instruction préparée à l'aide de la bibliothèque mysqli. Cependant, il utilise actuellement la fonction mysql_real_escape_string() pour nettoyer les entrées de l'utilisateur.

<code class="php">$consulta = $_REQUEST["term"]."%";

($sql = $db->prepare('select location from location_job where location like ?'));

$sql->bind_param('s', $consulta);
$sql->execute();</code>
Copier après la connexion

Réponse :

Non, les instructions préparées offrent une protection inhérente contre l'injection SQL et manipulation des données lorsqu’elles sont utilisées correctement. Ils nettoient automatiquement les entrées, rendant mysql_real_escape_string() redondant.

Amélioration :

Bien que la requête utilise correctement les instructions préparées, une modification mineure peut améliorer son efficacité. Au lieu d'utiliser la méthode bind_param(), la méthode execute() peut être utilisée pour transmettre directement des paramètres.

<code class="php">$sql->execute([$consulta]);</code>
Copier après la connexion

Remarque supplémentaire :

Bien que les instructions préparées protègent contre l'injection SQL, ils n'assurent pas la sécurité des données lors de leur sortie sur la page. Pour éviter les attaques potentielles de cross-site scripting (XSS), il est recommandé d'utiliser htmlspecialchars() pour encoder en HTML toutes les données avant de les afficher dans le navigateur.

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