Sécurité des applications : vulnérabilités courantes (comme l'injection SQL, cross-site scripting, etc.)

Signaler

Légende de la leçon

Vert : définitions

Introduction

Lorsque nous naviguons sur le web ou utilisons une application, nous supposons souvent qu'elle est sécurisée. Mais, malheureusement, ce n'est pas toujours le cas. Nous allons explorer certaines des vulnérabilités courantes que l'on peut rencontrer dans le monde des applications, comprendre comment elles fonctionnent et comment les éviter.

I. Injection SQL

Qu'est-ce que c'est ?

Une injection SQL se produit lorsqu'un attaquant peut « injecter » ou insérer des commandes SQL malveillantes via une entrée utilisateur, affectant ainsi la base de données d'une application.

Exemple concret :

Supposons un formulaire de connexion où tu entres ton nom d'utilisateur et ton mot de passe. Un attaquant pourrait entrer quelque chose comme ' OR '1'='1';-- pour se connecter sans connaître un mot de passe valide.

Comment s'en protéger ?

  • Utilise des requêtes préparées ou des place holders pour s'assurer que les données entrées par l'utilisateur sont traitées comme de simples données et non comme du code SQL.
  • Évite de construire des requêtes SQL par concaténation de chaînes.

II. Cross-Site Scripting (XSS)

Qu'est-ce que c'est ?

Le XSS permet à un attaquant d'injecter du code JavaScript malveillant dans une page web, qui est ensuite exécuté dans le navigateur d'un autre utilisateur.

Exemple concret :

Un forum où tu peux poster des commentaires. Si le site n'est pas sécurisé, un attaquant pourrait poster un commentaire contenant du JavaScript, affectant ainsi tous les utilisateurs qui voient ce commentaire.

Comment s'en protéger ?

  • Valide, filtre et échappe à toutes les entrées et sorties.
  • Utilise des en-têtes de sécurité HTTP comme Content Security Policy (CSP).

III. Cross-Site Request Forgery (CSRF)

Qu'est-ce que c'est ?

Le CSRF trompe un utilisateur pour qu'il effectue une action non intentionnelle sur un site où il est actuellement authentifié.

Exemple concret :

Imaginons que tu sois connecté à ta banque en ligne. Si tu visites un autre site malveillant, il pourrait déclencher une demande pour transférer de l'argent sans que tu le saches.

Comment s'en protéger ?

  • Utilise un token CSRF unique pour chaque session et chaque action.
  • Assure-toi que les actions sensibles utilisent la méthode POST plutôt que GET.

IV. Inclusion de fichiers distants

Qu'est-ce que c'est ?

Cela se produit lorsqu'un attaquant peut faire inclure un fichier distant, souvent malveillant, dans une application web.

Exemple concret :

Un site qui permet à l'utilisateur de choisir un modèle de page via une URL. Un attaquant pourrait potentiellement changer l'URL pour pointer vers un fichier malveillant.

Comment s'en protéger ?

  • Évite d'inclure des fichiers basés sur les entrées des utilisateurs.
  • Limite les permissions pour éviter l'exécution de code malveillant.

Je retiens

picture-in-text Les vulnérabilités courantes sont des failles que les attaquants exploitent pour compromettre les applications.

picture-in-text Injection SQL : évite de construire des requêtes SQL par concaténation de chaînes.

picture-in-text XSS : filtre et échappe à toutes les entrées et sorties.

picture-in-text CSRF : utilise un token CSRF unique pour chaque session.