Maison > développement back-end > tutoriel php > Comment puis-je écrire des requêtes MySQL sécurisées à l'aide des fonctions mysql_* ?

Comment puis-je écrire des requêtes MySQL sécurisées à l'aide des fonctions mysql_* ?

Patricia Arquette
Libérer: 2024-12-17 09:50:24
original
362 Les gens l'ont consulté

How Can I Write Secure MySQL Queries Using the mysql_* Functions?

Référence : Écriture de code MySQL sécurisé sans PDO

Introduction

Les requêtes MySQL sont souvent en proie à des problèmes avec des failles de sécurité et des erreurs dues à une mauvaise manipulation. Pour résoudre ce problème, il est crucial de comprendre les meilleures pratiques pour écrire du code sécurisé et fiable.

Problèmes de sécurité avec les fonctions MySQL_*

Lors de l'utilisation de la famille de fonctions mysql_* , des problèmes de sécurité courants surviennent :

  • Injection SQL : Les attaquants peuvent manipuler les requêtes en injecter des instructions SQL malveillantes dans les entrées de l'utilisateur.
  • Cross-Site Scripting (XSS) : Du JavaScript malveillant peut être exécuté en l'injectant dans les valeurs de sortie.

Exemple d'utilisation

L'exemple de code PHP suivant montre comment effectuer une requête UPDATE sûre et sécurisée en utilisant les fonctions mysql_* :

<?php

# Connect and disable mysql error output
$connection = @mysql_connect($config['host'], $config['user'], $config['pass']);

# Select database
mysql_select_db($config['db'], $connection);

# Set character set
mysql_set_charset('utf8', $connection);

# Escape user input
$id = mysql_real_escape_string($_POST['id']);
$name = mysql_real_escape_string($_POST['name']);

# Execute query
$result = mysql_query('UPDATE tablename SET name = "' . $name . '" WHERE id = "' . $id . '"', $connection);

# Handle result
if ($result) {
    echo htmlentities($name, ENT_COMPAT, 'utf-8') . ' updated.';
} else {
    trigger_error('Unable to update db: ' . mysql_error(), E_USER_ERROR);
}

?>
Copier après la connexion

Fonctionnalités clés

  • Échappe les entrées de l'utilisateur pour empêcher l'injection SQL.
  • Encode les valeurs sorties pour atténuer Risques XSS.
  • Définit le codage des caractères pour gérer Unicode data.
  • Utilise la gestion des erreurs pour informer l'utilisateur de tout problème en mode production.
  • Garde le code simple et lisible pour une compréhension facile.

Conclusion

En suivant les bonnes pratiques décrites ci-dessus, vous pouvez écrire des requêtes MySQL sécurisées et efficaces à l'aide de mysql_* fonctions. N'oubliez pas qu'il est crucial de protéger vos applications contre les vulnérabilités de sécurité et de garantir l'intégrité des données.

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