web-dev-qa-db-fra.com

AngularJS Web Api AntiForgeryToken CSRF

J'ai un AngularJS Single Page Application (SPA) hébergé par un ASP.NET MVC application.
Le back-end est ASP.NET Web Api .

Je voudrais le protéger contre les attaquesCSRFen générant un AntiForgeryToken dans la partie ASP.NET MVC , le transmettre à AngularJS , puis avoir Web Api validate la AntiForgeryToken reçue des appels suivants AngularJS .

«La falsification de requêtes inter-sites (CSRF) est une attaque qui force une fin l’utilisateur d’exécuter des actions indésirables sur une application Web dans laquelle ils se trouvent actuellement authentifié. Les attaques CSRF visent spécifiquement demandes de changement d'état, pas de vol de données, car l'attaquant n'a pas moyen de voir la réponse à la demande falsifiée. Avec un peu d'aide de l'ingénierie sociale (comme l'envoi d'un lien par courrier électronique ou par chat), un L’attaquant peut amener les utilisateurs d’une application Web à exécuter actions du choix de l'attaquant. Si la victime est un utilisateur normal, un Une attaque CSRF réussie peut forcer l'utilisateur à changer d'état des demandes telles que le transfert de fonds, la modification de leur adresse électronique, etc. en avant. Si la victime est un compte administratif, CSRF peut compromettre l'ensemble de l'application Web. "
- Projet de sécurité des applications Web ouvertes (OWASP)

34

Ajouter __RequestVerificationToken à FormData

 var formData = new FormData();
    formData.append("__RequestVerificationToken", token);
    formData.append("UserName", $scope.kullaniciAdi);
    formData.append("Password", $scope.sifre);

    $http({
        method: 'POST',
        url: '/Login/Login',
        data: formData,
        transformRequest: angular.identity, 
        headers: { 'Content-Type': undefined }

    }).then(function successCallback(response) {



    }, function errorCallback(response) {

    });
0
Ufuk Aydın