Les implémentations JSF sont courantes dans les applications J2EE. Les JSF utilisent les ViewState, déjà connus pour les attaques cryptographiques liées à l'utilisation d'un oracle [PADDING] ou pour réaliser des attaques côté client de type Cross-Site Scripting [XSS]. Nous allons voir qu'en réalité, ceux-ci peuvent aussi être utilisés pour mettre à mal la sécurité d'une application côté serveur.
1. Quelques rappels
Le concept de JSF (JavaServer Faces) a été introduit il y a plusieurs années et il est aujourd'hui largement utilisé au sein des applications J2EE. Il permet d'ajouter une couche d'abstraction sur l'une des parties les plus fastidieuses à implémenter dans une application web : l'interface graphique. La couche JSF permet notamment l'intégration d'éléments complexes au sein d'une application, tels que des composants graphiques par l'utilisation de balises dédiées, l'ajout d'une couche Ajax à l'aide d'un attribut au sein des formulaires et la mise en place de fonctions d'exportation des données affichées dans un format complexe (PDF ou Excel, par exemple).
Mais il serait naïf de penser que l'ajout d'une telle couche ne fait que simplifier le travail d'un développeur. En réalité, elle s'accompagne d'une multitude de mécanismes dont le fonctionnement est obscur et peu maîtrisé. Parmi ces mécanismes se trouve le ViewState.
1.1. JSF vs...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première