Angulaire 2: désinfecter HTML a dépouillé du contenu avec div id - c'est un bug ou une fonctionnalité?
- Je utiliser <div [innerHTML]="body"></div>
passer sans échappement HTML de mon template, et quand je passe à body
div
avec l'attribut id
Angulaire du jet:
AVERTISSEMENT: nettoyage HTML dépouillé de certains contenus (voir http://g.co/ng/security#xss).
AVERTISSEMENT: nettoyage HTML dépouillé de certains contenus (voir http://g.co/ng/security#xss).
AVERTISSEMENT: nettoyage HTML dépouillé de certains contenus (voir http://g.co/ng/security#xss).
Alors pourquoi il dit cela? Ce qui peut être dangereux id
dans div
? Cela pourrait-il un bug?
source d'informationauteur ktretyak | 2016-09-24
Vous devez vous connecter pour publier un commentaire.
C'est parce que l'id de l'attribut n'est pas sûr.
Ce n'est pas ma réponse, mais il va répondre à votre question : https://security.stackexchange.com/questions/88973/why-do-id-attributes-need-stricter-validation
Pour
id
etname
ces attributs sont fréquemment utilisés comme points de référence dans les DOM.Si un attaquant peut usurper ces points de référence, elle peut être en mesure de tromper les scripts existants dans l'obtention et définition des valeurs à partir d'autres lieux que conçu, ce qui peut être dangereux en fonction du contexte qui est utilisé.
Note de moi: Le reste de son post parle de l'attribut de nom, mais vous obtenez l'idée derrière tout cela si vous ne l'avez pas déjà par ce qui est au-dessus de
Cela vaut également pour les formulaires HTML où
name
est utilisé pour identifier la paire nom/valeur. Par exemple, si un site web ne codent pas une forme particulière de champ quand il est sortie, mais depuis le champ de formulaire est générées par le serveur et la forme est protégée contre les CSRF par l'utilisation de jetons, il ne peut pas être exploité par des moyens normaux. Cependant, un attaquant peut être en mesure d'inciter un utilisateur à visiter une URL avec un paramètre qui est utilisé dansname
contenant un XSS charge utile à exécuter lors de la soumission du formulaire.par exemple d'une utilisation Normale:
qui rend une forme
Et obtient alors en sortie
Cependant, un attaquant peut envoyer un lien à l'utilisateur comme suit:
Que l'application est correctement codage HTML à ce stade, il rend le formulaire comme
Cela devient alors une sortie comme
depuis cette page n'a pas de codage HTML le
shop_name
paramètre car il est digne de confiance et le cadre d'application prend toujours la première valeur en cas de doublons. Très artificiel, mais c'était la première chose qui me tombait sous la tête de le démontrer.La solution la plus Simple est d'écrire pipe comme
ajouter dans votre fichier html ajouter des tas comme