- Tests de sécurité effectués pour détecter les vulnérabilités XSS.
- Mise en place de protections contre l'injection de scripts malveillants.
- Validation et assainissement des entrées utilisateur.
- Tests de protection contre les injections SQL réalisés avec SQLMAP. Pourquoi SQLMAP ? SQLMAP permet de tester automatiquement si les entrées sont vulnérables aux injections SQL. Nous ne sommes donc pas vulnérables.
- Implémentation de mécanismes anti-bruteforce.
- Utilisation de requêtes préparées et d'ORM pour prévenir les injections SQL.
Exigences minimales pour les mots de passe :
- Longueur minimale de 8 caractères.
- Au moins 1 lettre majuscule et minuscule.
- Au moins 1 chiffre.
- Au moins 1 caractère spécial.
- Hachage systématique des mots de passe avant stockage.
- Utilisation d'algorithmes de hachage sécurisés.
- Mise en place du protocole HTTPS.
- Utilisation de Traefik avec Let's Encrypt.
- Renouvellement automatique des certificats SSL.
- Déploiement sur une instance EC2 sécurisée.
- Fermeture de tous les ports non essentiels.
- Accès SSH uniquement par clé SSH. Une amélioration possible serait de limiter l'accès au port SSH à certaines IP, mais l'utilisation de GitHub Actions sur des serveurs publics ne permet pas de connaître leurs IP fixes.
- Implémentation de l'authentification par JWT.
- Gestion sécurisée des sessions utilisateur.
- Validation des tokens côté serveur.
- Aucune information sur l'utilisateur n'est contenue dans le token ; celles-ci ne sont récupérables que grâce au token.
- Configuration stricte des politiques CORS ; seules les URL de développement et de production sont autorisées.
-
Principe du moindre privilège
- Attribution des droits minimums nécessaires.
- Séparation des rôles et responsabilités.
-
Mises à jour régulières
- Maintenance continue des composants de sécurité.
- Application rapide des correctifs de sécurité.
Cette architecture de sécurité multiniveau assure une protection robuste de l'application contre les menaces courantes. Les mesures mises en place couvrent aussi bien la sécurité applicative que l'infrastructure, offrant une défense en profondeur conforme aux bonnes pratiques actuelles.