Requêtes paramétrées avec connexion MySQL en PHP
Assurer la sécurité de vos applications de base de données est primordial, et les requêtes paramétrées constituent une défense cruciale contre SQL attaques par injection. Cette technique implique le traitement des entrées utilisateur en tant que paramètres plutôt que la syntaxe SQL directe, empêchant ainsi la manipulation de caractères malveillants.
Dans votre code, l'approche non sécurisée utilisant la concaténation des paramètres de nom d'utilisateur et de mot de passe est vulnérable à l'injection. Pour rectifier cela, suivez ces étapes :
Préparez la requête paramétrée :
<code class="php">$stmt = mysqli_prepare($dbc, "SELECT * FROM users WHERE username = ? AND password = ?");</code>
Cela prépare une instruction avec des espaces réservés (?) représentant les paramètres à transmettre.
Paramètres de liaison :
<code class="php">mysqli_stmt_bind_param($stmt, "ss", $userName, $userPass);</code>
Ici, "ss" précise les types de paramètres : deux chaînes. $userName et $userPass sont liés à ces paramètres.
Exécutez l'instruction :
<code class="php">mysqli_stmt_execute($stmt);</code>
Cela exécute la requête paramétrée avec la limite paramètres.
Récupérer les résultats :
<code class="php">$row = mysqli_stmt_fetch($stmt);</code>
Cela récupère la ligne de résultats, dont l'existence ou la manipulation peut ensuite être vérifiée.
Recommandations supplémentaires :
En suivant ces étapes, vous pouvez améliorer la sécurité de vos applications PHP et protégez-les des vulnérabilités d’injection SQL. N'oubliez pas que les requêtes paramétrées sont une technique essentielle dans la programmation de bases de données modernes et doivent toujours être utilisées pour le traitement des entrées utilisateur.
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!