Maison  >  Article  >  développement back-end  >  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
DDDoriginal
2024-11-13 16:42:02534parcourir

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 ']);

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)) . "'";

2. Méthode GET

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

$videoID = trim($_GET['videoID']);
$userID = trim($_GET['userID']);

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";

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!

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