Maison > développement back-end > tutoriel php > Addslashes() peut-il vraiment empêcher les attaques par injection SQL ?

Addslashes() peut-il vraiment empêcher les attaques par injection SQL ?

Barbara Streisand
Libérer: 2024-12-01 15:10:11
original
949 Les gens l'ont consulté

Can addslashes() Really Prevent SQL Injection Attacks?

Comprendre les injections SQL via addlashes()

addslashes() est une fonction PHP couramment utilisée pour échapper aux caractères spéciaux dans les chaînes afin d'empêcher l'injection SQL attaques. Cependant, malgré ses intentions, il peut en fait faciliter de telles attaques dans de rares occasions.

Prenons un exemple :

Scénario : un utilisateur soumet l'entrée "' OR 1=1 -- - " dans un champ de texte.

addslashes() convertirait l'entrée en : "' OR 1=1 -- -", mais si l'encodage de la base de données se produit pour prendre en charge les caractères multi-octets comme Shift-JIS, l'apostrophe serait interprétée comme faisant partie d'un caractère multi-octets, compromettant ainsi l'échappement prévu.

Par conséquent, la requête SQL modifiée ressemblerait à : "'% OR 1=1 -- -"

Cette requête modifiée réussit à exécuter l'attaque par injection SQL car l'apostrophe n'est plus traitée comme une séquence d'échappement mais plutôt comme une partie de un caractère multi-octets.

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