Maison > développement back-end > tutoriel php > Comment puis-je sécuriser les requêtes MySQL en PHP à l'aide d'instructions préparées ?

Comment puis-je sécuriser les requêtes MySQL en PHP à l'aide d'instructions préparées ?

Barbara Streisand
Libérer: 2024-12-17 00:14:23
original
916 Les gens l'ont consulté

How Can I Secure MySQL Queries in PHP Using Prepared Statements?

Instructions préparées MySQL sécurisées en PHP

Les instructions préparées améliorent la sécurité des requêtes de base de données en empêchant les attaques par injection SQL. Ils remplacent les valeurs fournies par l'utilisateur comme paramètres de liaison, garantissant ainsi qu'aucun code malveillant n'est directement exécuté.

Pour créer une instruction préparée sécurisée, suivez ces étapes :

  1. Établissez une Connexion à la base de données : Utilisez mysqli_connect() pour vous connecter à la base de données.
  2. Préparez le Requête : Créez une instruction préparée en utilisant mysqli_prepare(). Fournissez à la requête des espaces réservés pour les valeurs fournies par l'utilisateur.
  3. Paramètres de liaison : Appelez mysqli_stmt_bind_param() pour spécifier les types de données des paramètres de liaison et lier les valeurs réelles aux espaces réservés.
  4. Exécuter la requête : Exécutez l'instruction préparée en utilisant mysqli_stmt_execute().
  5. Obtenez les résultats : Traitez les résultats récupérés selon vos besoins.

Voici un exemple :

$stmt = $mysqli->prepare("SELECT * FROM mytable WHERE userid=? AND category=? ORDER BY id DESC");
$stmt->bind_param('ii', intval($_GET['userid']), intval($_GET['category']));
$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    // Process the result row
}

$stmt->close();
Copier après la connexion

BONUS : Optimisation de la vitesse

Pendant les instructions préparées améliorent généralement la vitesse, le nombre de fois qu'elles sont utilisées sur une page n'affecte pas de manière significative l'optimisation globale de la vitesse. La préparation concerne avant tout la sécurité, pas la performance.

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