2017-10-09 6 views
0

Je suis parfaitement conscient que je peux aseptiser des données liées à l'aide innerHTML:aurelia: correctement désinfectante données liées innerHTML

<div innerhtml.bind="someData | sanitizeHTML"></div> 

Cependant, d'après mes observations, cette aseptisation ne supprime que <script> tags. Il ne protège pas l'utilisateur de contenu événementiel tels que:

"Hi! I am some HTML-formatted data from the server! <button onclick="getRekt();">Click me for butterflies!</button>" 

Y at-il une meilleure façon d'éviter tout type de javascript ou callbacks événement d'être rendu sur l'élément?

Répondre

1

Le convertisseur de valeur sanatizeHTML est un désinfectant très simple et supprime uniquement les balises de scripts. Voir le code here.

Vous pouvez créer votre propre convertisseur de valeur avec un santizer plus complexe. Vérifiez this answer pour plus de détails sur la façon de désinfecter html dans un navigateur.

Mais n'oubliez pas de ne jamais faire confiance au navigateur, si vous le pouvez il est préférable de désinfecter le html côté serveur avant de l'envoyer au navigateur pour l'afficher.

+0

Merci de m'indiquer dans la bonne direction! Le serveur fait réellement la désinfection, je voulais juste un désinfectant côté client pour une sécurité plus infaillible. –