Aller au contenu principal

Sécurité : contrôle d'accès

Avant la séance (2h)

Si on regarde le top 10 des problèmes de sécurité dans les applis web, on trouve le contrôle d'accès défaillant en position 1.

C'est aussi la source de failles qu'on observe le plus souvent dans les projets des finissants.

La raison principale est que le contrôle d'accès nécessite souvent du travail sans apporter de nouvelles fonctionnalités.

(30 minutes) : passer à travers l'activité sur le contrôle d'accès.

On fournit 4 version plus ou moins sécurisées d'une même application de messagerie:

  • Aucun contrôle d'accès ici
  • Spring Security et authentification ici
  • Spring Security, authentification et extraction de l'utilisateur authentifié courant ici
  • Spring Security, authentification et extraction de l'utilisateur authentifié courant et test de propriété ici
Séance

Nous commencerons par un examen papier de 20 minutes (27 minutes si 1/3 temps supplémentaire, 30 si 1/2 temps supplémentaire).

Nous discuterons des différences entre les différents projets.

Nous verrons également comment rédiger une FAILLE, un EXPLOIT et un CORRECTIF sur l'exemple aucune sécurité.

  • Vérifier si l'utilisateur est authentifié, si ce n'est pas le cas exception
  • Si c'est une lecture, il faut ensuite vérifier que l'utilisateur est le propriétaire (ou a le droit d'accès) sur l'objet demandé
  • Si c'est une écriture, il faut s'assurer qu'on ne peut pas créer des données dans le compte d'un autre utilisateur
Exercices

Exercice formatif

En préparation de l'examen de la prochaine séance, assurez-vous de savoir identifier et corriger les problèmes de contrôle d'accès dans une application Spring Boot.

Exercice Curl / postman

Essaie de reproduire les requêtes décrite en curl dans l'activité avec Postman.

  • création de 3 comptes utilisateurs alice bobo charlie
  • création de 2 messages entre alice et bob
  • requête de l'exploit de 01-OpenBar pour lire les messages de bob et charlie

Exercice Exploit

Vous devez rédiger FAILLE, EXPLOIT et CORRECTIF pour la banche 01-OpenBar de l'activité dans un fichier 01-exploit.md.

(Optionnel) Exercice Exploit2

Vous devez rédiger FAILLE, EXPLOIT et CORRECTIF pour la branche 02-SpringSecurityBasic de l'activité dans un fichier 02-exploit.md.

Vous devez rédiger FAILLE, EXPLOIT et CORRECTIF pour la branche 03 de l'activité dans 03-exploit.md.