Hacking : sécuriser une application Web Java
Référence : JACK
Durée : 1 jour (7 heures)
La sécurité Web comporte de nombreux aspects tels que le réseau, le matériel, le système, les applications. Un de ses aspects les moins stables concerne les applications ; ces dernières étant basées sur des technologies sans cesse en mouvement et sur des architectures de plus en plus complexes. Les hackers le savent bien et privilégient de plus en plus les attaques applicatives : DoS applicatif, injection JavaScript ou injection SQL. Aussi, il est essentiel pour les développeurs de connaître et savoir mettre en oeuvre des mesures de sécurité dans les projets Java Web d'entreprise.
Ce cours est une suite pratique au cours plus général de sécurité applicative (WEHA), focalisée sur les applications Web Java et sur l'amélioration du code Java côté serveur.
Travaux pratiques :
Vous aurez à mettre en défaut une application bancaire typique en identifiant ses manquements et trouverez comment les exploiter. Vous aurez ensuite à réaliser des évolutions et des corrections de code pour sécuriser complètement l'application Web. Ce sera l'occasion d'écrire du code invulnérable aux injections SQL et JavaScript (XSS). Vous implémenterez aussi une politique d'authentification et d'autorisation ainsi qu'un système de jeton de transaction.
Vous allez apprendre à :
- Comprendre et trouver les failles essentielles de sécurité applicative
- Sécuriser le code d'une application Web Java
- Comprendre les particularités et possibilités de Java EE en matière de sécurité Web
- Connaître les apports des Frameworks les plus courants
Méthode pédagogique :
60% de travaux pratiques
Audience :
Développeurs Web, développeurs Java EE
Pré-requis :
- Maîtriser Java et les bases du développement Web ou avoir suivi le cours IJOP ou AJOD
- La connaissance des failles de sécurité applicative est conseillée
Programme :
- Rappels sur la sécurité Web
- Réseau, Web et sécurité
- Top Ten OWASP
- Authentification Java EE
- Phishing et usurpation d'identité
- Failles d'injection
- Injection SQL
- Utilisation de PreparedStatement
- Cross Site Scripting
- Cross Site Request Forgery
- Bonnes pratiques anti-injection
- Sécurité des flux échangés
- Gestion de la session
- Validation des soumissions
- Encodage des réponses
- Expressions régulières
- White List / Black List
- Points d'attention et bonnes pratiques
- Définition des URL
- Elimination des références directes
- Gestion des autorisations
- Conversation et jeton de transaction
- Prévention anti Phishing