Comment Angular (2) gère-t-il XSS et CSRF. Est-ce qu'il gère même ces attaques? Si oui, que dois-je faire pour utiliser cette protection? Sinon, dois-je gérer tout ces attaques sur mon serveur, ou en quelque sorte avec TypeScript dans le frontend?
J'ai lu que vous devez utiliser "withCredentials: true
", mais je ne sais pas trop où mettre ce code ou si c'est même ça, ce que je cherche.
Dans la page Web https://angular.io/ , je n'ai rien trouvé à ce sujet (ou je l'ai juste raté).
Angular2 fournit intégré, activé par défaut *, anti [~ # ~] xss [~ # ~] et Protection CSRF/XSRF .
Le DomSanitizationService se charge de supprimer les bits dangereux afin d'éviter un [~ # ~] xss [~ # ~] attaque.
La classe CookieXSRFStrategy (au sein de la classe XHRConnection) prend en charge la prévention des attaques CSRF/XSRF .
* Notez que la protection CSRF/XSRF est activée par défaut sur le client mais ne fonctionne que si le backend définit un cookie nommé XSRF-TOKEN avec une valeur aléatoire lorsque l'utilisateur s'authentifie. Pour plus d'informations, consultez le modèle de jeton de cookie à en-tête .
MISE À JOUR: Documentation officielle de sécurité Angular2: https://angular.io/docs/ts/latest/guide/security.html (Merci à Martin Probst pour la suggestion de modification!).
Pour le côté serveur mentionné dans Angular, le CSRF que vous pourriez gérer en utilisant Express:
app.use(express.csrf())
app.use(function (req, res, next) {
res.cookie('XSRF-TOKEN', req.session._csrf);
res.locals.csrftoken = req.session._csrf;
next();
})
Je ne sais pas si avec le nouveau HttpClientXsrfModule c'est toujours requis cependant. Il pourrait être suffisant d'ajouter uniquement les éléments suivants (mais doivent être confirmés) du côté client dans app.module:
HttpClientXsrfModule.withOptions({
cookieName: 'XSRF-TOKEN',
headerName: 'X-XSRF-TOKEN'
})