Mot de passe, token, cookie et sécurité

Avant la semaine (2h)

Faites une recherche sur comment effectuer un hash d'une String en Java (avec l'algorithme SHA256). Faites un petit projet de démontration.

Regardez la page sur les cookies

Regardez les videos suivantes:

Vous trouverez également des exemples client-serveur dans le repo github qui incluent un client et un serveur fonctionnel pour: https et les cookies.

Séance 1

Nous discuterons des différentes attaques possible en terme de sécurité et des réponses à apporter.

  • Interception : HTTPS et Token
  • Intrusion : SHA256 et hash de passwords
  • Injection : échappement etc.

Nous programmerons une solution avec token et en particulier l'association entre le token et l'utilisateur ainsi que l'expiration du token.

Nous regarderons également les pages sur cross site request forgery et same origin policy

Séance 2

Vous devez compléter les exercices.

Vous devrez commencer à regarder la phase 3 du projet et les améliorations de sécurité exigées.

Exercices de la semaine

Exercice A

Mettez en place un projet JourHTTPS contenant un serveur HTTPS démarrant sur le port 7654. Le serveur doit fournir un service web avec une méthode GET sur l'URL "/api/jourdaujourdhui/{annee}". Le service doit renvoyer le jour de la semaine en français (lundi mardi ...) de la date d'aujourd'hui mais dans l'année spécifiée en paramètre dans l'URL.

Exemple : si nous sommes le 10 octobre 2000 et qu'on appelle le service avec annee qui vaut 1981, le service doit répondre "samedi".

Exercice B

Mettez en place un projet JourCookie. Assurez vous que le service répond uniquement si un cookie du serveur est présent.

Créez 2 méthodes supplémentaires pour installer le cookie "/api/cookie/on" et le supprimer "/api/cookie/off".