ScholarGate
Assistant

Sécurité des applications web

La sécurité des applications web traite des vulnérabilités spécifiques aux logiciels web — injection, script intersite, authentification défaillante et failles de contrôle d'accès — qui figurent parmi les plus courantes et les plus impactantes dans les systèmes modernes.

Trouver un sujet avec PaperMindBientôtFind papers & topics
Tools & resources
Télécharger les diapositives
Learn & explore
VidéoBientôt

Definition

La sécurité des applications web est la pratique visant à protéger les logiciels basés sur le web et leurs utilisateurs contre les attaques qui exploitent la gestion des entrées, des sessions, de l'authentification et du contrôle d'accès par l'application, ainsi que les faiblesses du modèle de sécurité des navigateurs.

Scope

Ce sujet aborde le modèle de menace des applications web (client non fiable, réseau hostile, serveurs multi-locataires) et ses classes de vulnérabilités caractéristiques : injection (SQL et de commandes), script intersite, falsification de requêtes intersites, contrôle d'accès et authentification défaillants, et désérialisation non sécurisée. Il couvre le modèle de sécurité des navigateurs (politique de même origine, politique de sécurité du contenu) et les défenses standard. Il exclut l'exploitation de la mémoire de bas niveau et le processus général de développement sécurisé, traités dans des sujets connexes.

Core questions

  • Pourquoi le mélange d'entrées non fiables avec du code ou des requêtes crée-t-il des vulnérabilités par injection ?
  • Comment le script intersite et la falsification de requêtes intersites attaquent-ils les utilisateurs d'un site ?
  • Comment la politique de même origine du navigateur contraint-elle ce que le code web peut faire ?
  • Comment l'authentification, les sessions et le contrôle d'accès sont-ils couramment compromis dans les applications web ?
  • Quelles défenses standard préviennent les vulnérabilités web les plus répandues ?

Key concepts

  • Injection SQL et de commandes
  • Script intersite (XSS)
  • Falsification de requêtes intersites (CSRF)
  • Contrôle d'accès défaillant
  • Authentification et gestion de session défaillantes
  • Politique de même origine
  • Politique de sécurité du contenu
  • Requêtes paramétrées
  • OWASP Top Ten

Key theories

L'injection et la confusion code/données
Les failles d'injection (injection SQL, injection de commandes) surviennent lorsque des entrées non fiables sont interprétées comme du code ; la défense consiste à maintenir les données et le code séparés, principalement via des requêtes paramétrées et un encodage de sortie strict.
Modèle de sécurité des navigateurs et attaques côté client
La politique de même origine isole le contenu de différentes origines, mais le script intersite injecte un script d'attaquant dans une page de confiance et la falsification de requêtes intersites abuse de la session authentifiée d'un utilisateur ; les défenses incluent l'encodage de sortie, la politique de sécurité du contenu et les jetons anti-CSRF.

Mechanisms

L'injection SQL se produit lorsque l'entrée utilisateur est concaténée dans une requête, permettant à un attaquant d'en altérer la logique ; les requêtes paramétrées y remédient en liant l'entrée comme des données. Le script intersite injecte un script dans une page que les navigateurs d'autres utilisateurs exécutent ensuite, atténué par un encodage de sortie sensible au contexte et une politique de sécurité du contenu. La falsification de requêtes intersites trompe un navigateur authentifié pour qu'il effectue des requêtes indésirables, défendue par des jetons anti-CSRF et des cookies SameSite. Les failles de contrôle d'accès surviennent lorsque le serveur ne parvient pas à vérifier l'autorisation à chaque requête.

Clinical relevance

Les vulnérabilités des applications web sont à l'origine de nombreuses des plus grandes violations de données : l'injection SQL et le contrôle d'accès défaillant ont exposé des milliards d'enregistrements, et le script intersite compromet régulièrement les comptes utilisateurs. Étant donné que presque tous les services disposent d'une interface web, la sécurité web affecte directement le commerce électronique, la banque, les portails de santé et les systèmes gouvernementaux, et elle est un pilier des tests d'intrusion, des programmes de primes aux bogues et des régimes de conformité comme PCI-DSS.

Evidence & guidelines

L'OWASP Top Ten est la référence de facto pour les risques web prévalents, complétée par l'OWASP Application Security Verification Standard (ASVS) et les fiches de synthèse (cheat sheets). Les défenses appliquées par les navigateurs (Content Security Policy, SameSite cookies, Subresource Integrity) sont standardisées par le W3C et le WHATWG. Les cadres de conformité tels que PCI-DSS imposent des contrôles de sécurité web pour les systèmes traitant des données de paiement.

History

La sécurité des applications web s'est développée avec le web dynamique de la fin des années 1990 et des années 2000, à mesure que les bases de données et les entrées utilisateur créaient des failles d'injection et de script. L'OWASP Top Ten (publié pour la première fois en 2003) a standardisé la sensibilisation aux risques les plus critiques. Les défenses côté navigateur ont évolué grâce à la politique de même origine et, plus tard, à la politique de sécurité du contenu, tandis que des violations majeures ont démontré à plusieurs reprises le coût réel de l'injection SQL et du contrôle d'accès défaillant.

Key figures

  • Dafydd Stuttard
  • Ross Anderson
  • Jeremiah Grossman
  • Michal Zalewski

Related topics

Seminal works

  • stuttard2011
  • owasp2021
  • anderson2020

Frequently asked questions

Quelle est la défense la plus efficace contre l'injection SQL ?
L'utilisation de requêtes paramétrées (instructions préparées), qui envoient la structure SQL et les valeurs fournies par l'utilisateur séparément afin que l'entrée ne puisse jamais être interprétée comme faisant partie de la requête. Cela maintient le code et les données distincts et neutralise cette classe d'attaque.
En quoi le script intersite diffère-t-il de l'injection SQL ?
Les deux proviennent d'entrées non fiables, mais l'injection SQL cible la base de données du serveur, tandis que le script intersite injecte un script malveillant qui s'exécute dans les navigateurs d'autres utilisateurs au sein du site de confiance. L'injection SQL vole ou altère les données du serveur ; le XSS détourne les sessions et les actions des utilisateurs.

Methods for this concept

Related concepts