-
Notifications
You must be signed in to change notification settings - Fork 1
Sécurité
Screenshot
Avec cette vulnérabilité, l'attaquant oblige un utilisateur connecté via une requête HTTP frauduleuse utilisant les droits de l'utilisateur pour exécuté une action sans le savoir. Cette attaque ce base sur différente caractéristiques :
- l'authentification des utilisateurs
- exploite les droits lier aux utilisateurs
- l'envoie de requête HTTP pour déclenché une action à l'insu de l'utilisateur
- Demandé une confirmation pour des action importantes
- Demandé une confirmation via mot de passe lors du changement des informations personnel
- Utilisé des token dans les formulaires
- Vérifier d'où viens l'utilisateur (regarder si il avait accès à cette page sur la page ou il était avant)
La Stratégie de sécurité du contenu améliore la sécurité des sites web, le CSP permet de réduire les attaques de type Cross Site Scripting ou d'injection de contenu. Ces attaques ont généralement pour objectifs de volé des données, de changer la face d'un site ou encore de propagé des malwares. Pour configurer le CSP il faut créer des règles ainsi que l'entête HTTP grâce à ça, par exemple une page peux charger des images stocké n'importe ou mais ne peux envoyer des requête que vers des endroits bien défini
Le CROS permet de gérer les requêtes venant de différente origine sécuriser et de transférer des données entre le navigateur et le server Web. Généralement CORS est utilisé dans des API pour aidé à réduire le risque de requête multi-origines.
Le principe de cette attaque est de superposer un site malveillant par dessus une page "victime" pour que l'utilisateur pense cliqué sur une lien dans lequel il a confiance mais serra redirigé vers un autre endroit. Pour s'en protéger nous avons plusieurs solution à envisager :
- Utilisé un entête HTTP spécifique X-Frame-Option avec une option pour spécifier les autorisations
- Utilisation de protection d'en le script JavaScript
Pour éviter toutes fuites de mot de passes ces derniers sont tout d'abord hasher dans le frontend en sha256 avec du sel puis serra rehasher dans le backend avec bcrypt du sel. Grâce à ce procédé, on empêche la récupération de mot de passe lors d'attaques de type man in the middle car il ne pourra récupérer que le premier hash du mot de passe mais ne pourra pas s'en servir lors d'une requête de connexion.
Pour apporter de la protection supplémentaire nous avons installé un Reverse-Proxy qui sera le seul à pouvoir communiquer avec notre application. Cela nous permettra d'anonymiser notre application et d'installer divers services tel qu'un pare-feu, une connexion https et fail2ban. Si la requête passe nos sécurités elle pourra accéder à notre frontend hosté sur Netlify. Netlify aura ensuite une connexion exclusive à notre backend qui lui-même aura une connexion exclusive à notre base de données.
Nous avons décider d'installer un Capcha pour permettre de réduire la quantité de spams sur notre site et parce qu'ils sont une barrière efficace contre les attaques automatiques. Cela nous permettra de différencier automatiquement les utilisateurs humain des machines qui nous attaqueraient. Pour cela on a plusieurs choix qui nous sont possible, comme une case à cochée, une suite de caractères à réécrire ou une différentiation d'images.