0%
Sécurité avec Spring Security

Sécurité

Une chaîne de filtres avant le DispatcherServlet.

15-20 min

Sécurité avec Spring Security

La sécurité écrite à la main dans les contrôleurs échoue toujours de la même façon. On ajoute un test au début de chaque méthode sensible — if (session.getAttribute("user") == null) return "redirect:/login"; — et cela fonctionne, jusqu'au jour où une nouvelle méthode est écrite sans ce test. La faille n'est pas dans le code de sécurité : elle est dans son absence à un endroit, et rien ne signale cette absence.

C'est la différence de nature entre un contrôle par liste blanche et un contrôle par liste noire. Protéger chaque écran individuellement, c'est décider qu'un écran est public par défaut. Or les écrans se multiplient plus vite que les revues de code, et un oubli ne provoque aucune erreur : la page fonctionne, elle est simplement accessible à tous.

Spring Security inverse ce défaut. Il s'insère avant le DispatcherServlet, sous la forme d'une chaîne de filtres de servlet, et applique une politique déclarée en un seul endroit. Une requête vers une URL non prévue par la politique n'atteint aucun contrôleur : elle est refusée par l'infrastructure. Ajouter un écran ne crée donc pas de trou — au pire, il est inaccessible, ce qui se remarque immédiatement.

Commentaires

Les commentaires sont alimentés par GitHub Discussions

Connectez-vous avec GitHub pour participer à la discussion

Lien copié !