Aller au contenu principal

Sécurité des applications web : les vulnérabilités les plus courantes et comment s'en protéger

Illustration top vulnérabilités applications web

La sécurité web : un enjeu permanent

Chaque application web exposée sur Internet est une cible potentielle. Les attaques ne visent pas uniquement les grands groupes : les PME et les startups sont ciblées parce qu'elles investissent souvent moins dans la sécurité. Comprendre les vulnérabilités les plus courantes est la première étape pour s'en protéger.

Injection SQL

L'injection SQL consiste à insérer du code SQL malveillant dans un champ de saisie pour manipuler la base de données. C'est l'une des vulnérabilités les plus anciennes et pourtant toujours présente dans de nombreuses applications.

Protection :

  • Utilisez systématiquement des requêtes paramétrées (prepared statements) — jamais de concaténation de chaînes dans les requêtes SQL.
  • Utilisez un ORM (SQLAlchemy, Prisma, TypeORM) qui paramétrise automatiquement les requêtes.
  • Appliquez le principe du moindre privilège sur les comptes de base de données.

Cross-Site Scripting (XSS)

Le XSS permet à un attaquant d'injecter du JavaScript malveillant dans une page vue par d'autres utilisateurs. Il existe trois types : XSS stocké (persistant), XSS réfléchi et XSS basé sur le DOM.

Protection :

  • Échappez systématiquement les données utilisateur avant de les afficher dans le HTML.
  • Utilisez un framework qui échappe par défaut (Vue.js, React).
  • Configurez une Content Security Policy (CSP) stricte.
  • Marquez les cookies sensibles avec les flags HttpOnly et Secure.

Cross-Site Request Forgery (CSRF)

Le CSRF exploite la confiance qu'un site accorde au navigateur de l'utilisateur pour exécuter des actions non autorisées.

Protection :

  • Utilisez des tokens CSRF (synchronizer token pattern) pour chaque formulaire et requête modifiante.
  • Vérifiez l'en-tête Origin/Referer sur les requêtes sensibles.
  • Utilisez l'attribut SameSite=Strict ou Lax sur les cookies d'authentification.

Gestion des sessions et de l'authentification

Les failles d'authentification sont le vecteur d'attaque le plus critique selon l'OWASP Top 10 :

  • Implémentez un verrouillage de compte après plusieurs tentatives échouées.
  • Utilisez des tokens de session avec une entropie suffisante (128 bits minimum).
  • Invalidez les sessions côté serveur lors de la déconnexion.
  • Proposez et encouragez l'authentification multi-facteurs (MFA).

Headers de sécurité HTTP

Les headers HTTP sont une couche de défense souvent négligée :

  • Content-Security-Policy : limitez les sources de scripts, styles et médias autorisés.
  • Strict-Transport-Security : forcez HTTPS pour toutes les requêtes.
  • X-Frame-Options : empêchez l'embedding de votre site dans une iframe (clickjacking).
  • X-Content-Type-Options: nosniff : empêchez le MIME type sniffing.
  • Referrer-Policy : contrôlez les informations envoyées dans l'en-tête Referer.

Audit et amélioration continue

La sécurité n'est pas un état mais un processus. Intégrez la sécurité dans votre cycle de développement : revue de code orientée sécurité, scan automatisé des dépendances, tests de pénétration réguliers et veille sur les CVE affectant vos composants.