Sinatra SSM
Bibliothèque Ruby de gestion de sessions pour Sinatra.
Mise en contexte
SSM (Session Storage Management) est une bibliothèque Ruby qui gère le stockage des sessions par cookies dans une application Sinatra.
Technologies et outils utilisés
Fonctionnalités principales
- Sessions par cookies
- API de session
- Protection CSRF
- Rotation des sessions
- bcrypt
Une API de session utilisable dans les styles classic et modular de Sinatra, avec protection CSRF, rotation des sessions et bcrypt pour les mots de passe.
Durcissement des comptes
- Verrouillage après échecs
- Politique de mot de passe
- Cookies httponly & secure
- Stockage thread-safe
Le compte se verrouille quinze minutes après cinq échecs, et le mot de passe exige douze caractères avec majuscule, chiffre et caractère spécial.
Défis rencontrés
- Maîtriser le cycle de vie des cookies HTTP et leurs contraintes côté client.
- Sécuriser les sessions avec bcrypt et un verrouillage de compte après échecs répétés.
- Gérer la concurrence sur un stockage partagé, pour que deux requêtes simultanées n'entrent pas en conflit.
- Documenter l'API pour qu'elle soit utilisable sans lire le code source.
Code source
github.com/HydroshieldMKII/Sinatra-SSM