Maison > développement back-end > tutoriel php > Les injections SQL peuvent-elles aller au-delà des requêtes POST et GET ?

Les injections SQL peuvent-elles aller au-delà des requêtes POST et GET ?

DDD
Libérer: 2024-11-13 16:42:02
original
586 Les gens l'ont consulté

Can SQL Injections Go Beyond POST and GET Requests?

Les injections SQL peuvent-elles se produire au-delà des requêtes POST et GET ?

Les injections SQL exploitent les vulnérabilités des applications Web qui nettoient de manière inadéquate les entrées des utilisateurs avant de les incorporer dans Requêtes SQL. Bien que les méthodes POST et GET soient des voies courantes pour cette attaque, les injections SQL peuvent également se produire par d'autres moyens.

Dans le code fourni, mysql_real_escape_string est utilisé pour coder les entrées utilisateur, atténuant ainsi le risque d'injection SQL. Cependant, la sécurité du code repose en grande partie sur l'application cohérente de cet encodage.

Examen de l'exemple de code

1. Méthode POST

L'exemple de code initialise les variables avec la saisie de l'utilisateur :

$name = trim($_POST['username']);
$mail = trim($_POST['email']);
$password = trim($_POST['password ']);
Copier après la connexion

Avant de stocker les informations de l'utilisateur dans une base de données, elles sont correctement codées :

$sql =
"INSERT INTO
   clients
 SET
   name='" . mysql_real_escape_string($name) . "',
   mail='" . mysql_real_escape_string($mail) . "',
   password='" . mysql_real_escape_string(sha1($password)) . "'";
Copier après la connexion

2. Méthode GET

Les variables sont initialisées à partir de l'URL :

$videoID = trim($_GET['videoID']);
$userID = trim($_GET['userID']);
Copier après la connexion

Encore une fois, la requête SQL utilise l'encodage approprié :

$sql =
"SELECT
   videoID
 FROM
   likes
 WHERE
   videoID = '" . mysql_real_escape_string($videoID) . "' AND UID = '" . mysql_real_escape_string($userID) . "' LIMIT 1";
Copier après la connexion

Conclusion

Le code que vous avez fourni ne contient aucune vulnérabilité d'injection SQL, grâce à l'utilisation cohérente de mysql_real_escape_string pour encoder les entrées utilisateur. Il est impératif de noter que le codage doit être appliqué judicieusement à toutes les entrées utilisateur, quelle que soit leur source. Pour améliorer davantage la sécurité, envisagez d'adopter l'approche plus moderne consistant à utiliser PDO avec des instructions préparé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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal