recherche
Maisonbase de donnéestutoriel mysqlComment utiliser en toute sécurité l'extension MySQL en PHP pour empêcher l'injection SQL ?

How to Securely Use the MySQL Extension in PHP to Prevent SQL Injection?

Comment créer des requêtes de base de données sécurisées avec l'extension MySQL

L'extension MySQL offre une approche rudimentaire mais fonctionnelle des interactions avec les bases de données en PHP. Bien qu'il ne s'agisse pas de l'option la plus recommandée, son utilisation appropriée peut atténuer les pièges potentiels en matière de sécurité et d'utilisabilité.

Considérations essentielles pour les requêtes sécurisées

Pour se prémunir contre les vulnérabilités courantes, il est crucial de adhérer aux meilleures pratiques :

  • Empêcher l'injection SQL en échappant à l'utilisateur input.
  • Évitez l'exécution dynamique de SQL, telle que les clauses LIMIT ou les noms de table.
  • Mettez en œuvre des rapports d'erreurs robustes pour le débogage et l'utilisation en production.
  • Protégez-vous contre les scripts intersites ( XSS) en nettoyant la sortie.

Exemple de code pour MySQL sécurisé Interaction

Illustrons un script PHP sécurisé qui effectue une requête UPDATE sur la table 'tablename' :

header('Content-type: text/html; charset=utf-8');
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

$config = array(
    'host' => '127.0.0.1',
    'user' => 'my_user',
    'pass' => 'my_pass',
    'db' => 'my_database'
);

$connection = @mysql_connect($config['host'], $config['user'], $config['pass']);

if (!$connection) {
    trigger_error('Unable to connect to database: ' . mysql_error(), E_USER_ERROR);
}

if (!mysql_select_db($config['db'])) {
    trigger_error('Unable to select db: ' . mysql_error(), E_USER_ERROR);
}

if (!mysql_set_charset('utf8')) {
    trigger_error('Unable to set charset for db connection: ' . mysql_error(), E_USER_ERROR);
}

$result = mysql_query('UPDATE tablename SET name = "' . mysql_real_escape_string($_POST['name']) . '" WHERE id = "' . mysql_real_escape_string($_POST['id']) . '"');

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

Explication

  • Échapper aux entrées de l'utilisateur : Les valeurs d'entrée (identifiant et nom) sont échappées à l'aide de mysql_real_escape_string pour empêcher l'injection SQL.
  • Désactiver l'affichage des erreurs : L'affichage des erreurs est désactivé en mode production (display_errors défini sur 0) pour des raisons de sécurité.
  • Support Unicode : Le support Unicode est activé via mysql_set_charset('utf8') pour gérer l'international caractères.
  • Gestion des erreurs : Des erreurs détaillées sont déclenchées en cas d'échec, facilitant le débogage et le rapport d'erreurs. La fonction trigger_error() peut être personnalisée selon les besoins.

Cet exemple de code montre comment exécuter une requête de mise à jour sécurisée à l'aide de l'extension MySQL. Il sert de référence aux développeurs cherchant à mettre en œuvre les meilleures pratiques dans leurs propres interactions avec les bases de 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!

Déclaration
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
Comment accorder des autorisations aux nouveaux utilisateurs de MySQLComment accorder des autorisations aux nouveaux utilisateurs de MySQLMay 09, 2025 am 12:16 AM

TOGRANTERMISSIMESTESTERSWMYSQLUSERS, SuivreTheSesteps: 1) AccessMysqlasauserwithSufficientPrivileges, 2) CreateEnewUserwithThereAserercommand, 3) UsethegrantCommandTospecifyPerMissionsLikEselect, insert, mise à jour, OrallegandSonSpecificaCificdataStAtAnSorables, et4), 4).

Comment ajouter des utilisateurs dans MySQL: un guide étape par étapeComment ajouter des utilisateurs dans MySQL: un guide étape par étapeMay 09, 2025 am 12:14 AM

ToaddUsersInmysqleffecativement et en résultant, suivez-vous: 1) UsethCreateAsTatement à AddanEwUser, spécifiant le dossier d'astron.

MySQL: ajout d'un nouvel utilisateur avec des autorisations complexesMySQL: ajout d'un nouvel utilisateur avec des autorisations complexesMay 09, 2025 am 12:09 AM

ToaddanewUserwithComplexPermisessionsInmysql, suivi destiné: 1) Création sword ';. 2) GRANTREADACCESSTOALLTABLESSIn'MYDATABASE'WithGrantsElectonMyDatabase.To'newuser' @ 'LocalHost';. 3) GRANTWRITEACESSTO '

MySQL: Types et collations de données de chaîneMySQL: Types et collations de données de chaîneMay 09, 2025 am 12:08 AM

Les types de données de chaîne dans MySQL incluent Char, Varchar, Binary, Varbinary, Blob et Text. Les collations déterminent la comparaison et le tri des chaînes. 1. Char convient aux chaînes de longueur fixe, Varchar convient aux chaînes de longueur variable. 2.Binara et varbinaire sont utilisés pour les données binaires, et Blob et le texte sont utilisés pour les données de grandes objets. 3. Les règles de tri telles que UTF8MB4_UNICODE_CI ignorent les caractéristiques supérieures et inférieures et conviennent aux noms d'utilisateurs; UTF8MB4_BIN est sensible à la casse et convient aux champs qui nécessitent une comparaison précise.

MySQL: Quelle longueur dois-je utiliser pour Varchars?MySQL: Quelle longueur dois-je utiliser pour Varchars?May 09, 2025 am 12:06 AM

La meilleure sélection de la longueur de la colonne MySqlvarchar doit être basée sur l'analyse des données, considérer la croissance future, évaluer les impacts des performances et les exigences des ensembles de caractères. 1) Analyser les données pour déterminer les longueurs typiques; 2) Réserver l'espace d'expansion future; 3) Faites attention à l'impact de grandes longueurs sur les performances; 4) Considérez l'impact des ensembles de caractères sur le stockage. Grâce à ces étapes, l'efficacité et l'évolutivité de la base de données peuvent être optimisées.

MySQL Blob: Y a-t-il des limites?MySQL Blob: Y a-t-il des limites?May 08, 2025 am 12:22 AM

MySqlBlobShavelimits: Tinyblob (255 bytes), blob (65 535 bytes), Mediumblob (16 777 215 bytes), et Longblob (4 294 967 295 bytes). Obseffectively: 1) considérer la compréhension de l'Impacts et de laARGELLOBBOBSEXTERNELLEMENT; 2)

MySQL: Quels sont les meilleurs outils pour automatiser la création des utilisateurs?MySQL: Quels sont les meilleurs outils pour automatiser la création des utilisateurs?May 08, 2025 am 12:22 AM

Les meilleurs outils et technologies pour automatiser la création d'utilisateurs dans MySQL incluent: 1. MySQLWorkbench, adapté à des environnements petits et moyens, faciles à utiliser mais une consommation de ressources élevées; 2. ANSIBLE, adapté aux environnements multi-serveurs, courbe d'apprentissage simple mais abrupte; 3. Scripts Python personnalisés, flexibles mais doivent assurer la sécurité des scripts; 4. Puppet et chef, adapté aux environnements à grande échelle, complexes mais évolutifs. Les besoins d'échelle, de courbe d'apprentissage et d'intégration doivent être pris en compte lors du choix.

MySQL: Puis-je rechercher dans un blob?MySQL: Puis-je rechercher dans un blob?May 08, 2025 am 12:20 AM

Oui, YouCansearchInSideAblobinMysQlutingSpecifiCTechniques.1) ConvertTheBlobtoAutf-8StringWithConvertFunctionandSearchusingLiliN.2) ForcompressedBlobs, useUncompressBeForEConversion.3)

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP