Maison > Article > base de données > Comment les requêtes paramétrées en PHP peuvent-elles protéger contre l'injection SQL dans les bases de données MySQL ?
Requêtes paramétrées en PHP pour des connexions MySQL sécurisées
L'injection SQL reste une menace de sécurité persistante qui peut compromettre les données sensibles dans les applications de base de données. Les requêtes paramétrées sont une technique cruciale pour atténuer ce risque. Cependant, leur mise en œuvre correcte nécessite de comprendre non seulement la requête elle-même, mais également le processus de connexion à la base de données.
Considérez l'extrait de code suivant provenant d'une page de connexion PHP :
<code class="php">$query = "SELECT * FROM users WHERE username = '$userName' AND password = '$userPass'"; $result = mysqli_query($dbc, $query); $row = mysqli_fetch_array($result);</code>
Ce code est vulnérable à Injection SQL car les entrées fournies par l'utilisateur $userName et $userPass sont directement incluses dans la chaîne de requête.
Pour implémenter des requêtes paramétrées, remplacez ce code par le suivant :
<code class="php">$stmt = mysqli_prepare($dbc, "SELECT * FROM users WHERE username = ? AND password = ?"); mysqli_stmt_bind_param($stmt, "ss", $userName, $userPass); mysqli_stmt_execute($stmt); $row = mysqli_stmt_fetch($stmt);</code>
Dans ce code amélioré :
N'oubliez pas de crypter ou de hacher les mots de passe des utilisateurs pour plus de sécurité. Les requêtes paramétrées ainsi que ces mesures supplémentaires garantissent des interactions sécurisées avec la base de données MySQL dans vos applications PHP.
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!