Outils pour utilisateurs

Outils du site


bloc3:sqlinjection

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bloc3:sqlinjection [2025/03/17 19:15] – [Généralités] cossavella.kbloc3:sqlinjection [2025/04/30 13:58] (Version actuelle) – [Paramètres nommés] admin
Ligne 13: Ligne 13:
 ==== Généralités ==== ==== Généralités ====
  
-La plupart des SGBD modernes utilisent un mécanisme dit "Requêtes sécurisées" pour sécuriser les injections SQL.+La plupart des SGBD modernes utilisent un mécanisme dit de <color #00a2e8>requêtes paramétrées</color> ou <color #00a2e8>requête préparées</color>.
 Ce mécanisme a pour but d'améliorer la sécurité et l'efficacité des requêtes SQL.   Ce mécanisme a pour but d'améliorer la sécurité et l'efficacité des requêtes SQL.  
  
Ligne 25: Ligne 25:
  
 Les requêtes préparées offrent plusieurs avantages par rapport aux requêtes classiques.  Les requêtes préparées offrent plusieurs avantages par rapport aux requêtes classiques. 
-Elles permettent de Sécuriser les requêtes en évitant l'insertion de code malveillant et en améliorant les performances des requêtes répétées, car la requête n'a besoin d'être analysée qu'une seule fois, même si elle est exécutée plusieurs fois avec des données différentes.  +Elles permettent <color #00a2e8>d'optimiser l'exécution de requêtes répétées</color>, car la requête n'a besoin d'être analysée qu'une seule fois, même si elle est exécutée plusieurs fois avec des données différentes.  
-Cela renforce la sécurité en empêchant l'exécution de code SQL injecté et améliore les performances des requêtes répétées. De plus, elles "figent" la structure de la requête, ne laissant aucune place à la modification malveillante de cette dernière, réduisant considérablement la surface d'attaque pour les injections SQL.+<color #00a2e8>Cela conduit à un gain de performance important pour des opérations répétitives</color>. De plus, elles "figent" la structure de la requête, ne laissant aucune place à la modification malveillante de cette dernière, réduisant considérablement la surface d'attaque pour les injections SQL.
 ==== Paramètres anonymes ==== ==== Paramètres anonymes ====
  
-**__Définition:__**: Ce sont des marqueurs utilisés dans les requêtes préparées pour <color #ed1c24>indiquer les emplacements des valeurs à injecter, sans leur donner de noms explicites.</color> Ils ont représentés par des points d'interrogation **(?)** dans la requête SQL. +**__Définition__** : Ce sont des marqueurs utilisés dans les requêtes préparées pour <color #00a2e8>indiquer les emplacements des valeurs à injecter, sans leur donner de noms explicites.</color> Ils ont représentés par des points d'interrogation **(?)** dans la requête SQL. 
  
 Lorsque la requête est exécutée, un tableau contenant les valeurs des paramètres est fourni, et ces valeurs sont liées aux marqueurs anonymes dans l'ordre de leur apparition dans la requête. Cela permet de sécuriser les requêtes sans risquer d'injecter du code malveillant dans la Base de Données. Lorsque la requête est exécutée, un tableau contenant les valeurs des paramètres est fourni, et ces valeurs sont liées aux marqueurs anonymes dans l'ordre de leur apparition dans la requête. Cela permet de sécuriser les requêtes sans risquer d'injecter du code malveillant dans la Base de Données.
Ligne 35: Ligne 35:
 ==== Paramètres nommés ==== ==== Paramètres nommés ====
  
-__**Définition**__: Une alternative aux paramètres anonymes dans les requêtes préparées. Au lieu d'utiliser des points d'interrogation pour marquer l'emplacement des valeurs, chaque paramètre est identifié par un nom précédé d'un deux points (:). Cela permet de spécifier les paramètres indépendamment de leur position dans la requête et d'améliorer la lisibilité, surtout pour les requêtes complexes. Un tableau associatif est ensuite utilisé pour lier chaque paramètre nommé à une valeur.+__**Définition**__: Une alternative aux paramètres anonymes dans les requêtes préparées. Au lieu d'utiliser des points d'interrogation pour marquer l'emplacement des valeurs, chaque paramètre est identifié par un nom précédé d'un deux points (**:**). Cela permet de spécifier les paramètres indépendamment de leur position dans la requête et d'améliorer la lisibilité, surtout pour les requêtes complexes. Un tableau associatif est ensuite utilisé pour lier chaque paramètre nommé à une valeur.
 ==== Mise en œuvre PHP ==== ==== Mise en œuvre PHP ====
  
bloc3/sqlinjection.1742235334.txt.gz · Dernière modification : 2025/03/17 19:15 de cossavella.k