Beim Lesen der Dokumentation für ngSanitize sieht es so aus, als ob es zwei Whitelists verwendet, um zu bestimmen, welche Daten blockiert werden sollen (described here, in $compileProvider
). Die zwei weißen Listen sind aHrefSanitizationWhitelist([regexp])
und imgSrcSanitizationWhitelist([regexp])
. Es sieht jedoch so aus, als ob diese beiden nur URLs für Links behandeln, um XSS-Angriffe zu verhindern.
Sie können sce.trustAsHtml()
(oder möglicherweise data-bind-html-unsafe
, wenn das immer noch eine Sache ist, aber ich denke, das ist veraltet), aber das ist nicht genau das, was Sie wollen; Das würde dich für alles HTML öffnen, sicher oder unsicher.
Es könnte sich lohnen, die documentation for $sce
zu überprüfen. Wenn man es so weit betrachtet, gibt es eine Option, CSS zu umgehen, aber ich bin mir nicht sicher, ob es Inline-CSS in einem HTML-Tag entkommen würde. Bisher sehe ich keine Möglichkeiten, eine Whitelist für die parseAs
-Methode bereitzustellen.
Edit:
die $sanitize
source code Blick durch, es sieht aus, als ob es gesetzt ist Tags, Sachen in der Art zu ermöglichen, aber nicht Stil Attribute. Stilattribute werden bereinigt, sofern Sie den Quellcode nicht ändern. Klassen werden jedoch nicht entfernt, sodass Sie möglicherweise einen Workaround haben. (In der Tat, indem Sie Klassen und nicht Inline-Stile zulassen, können Sie Stilnutzung möglicherweise in Ihrem Kommentarabschnitt einschränken.)
Die einzige andere Alternative wäre, Ihre eigene zu rollen, es scheint, es sei denn, jemand hat bereits.
Sollten Sie die Serverseite nicht bereinigen? –
@MattWay können Sie Recht haben, aber die Alternative wäre, das inlined CSS zu analysieren und das Element durch einige Formatierung HTML-Tags zu wickeln, aber ich wäre nicht in der Lage, z. Setze eine Schriftfarbe auf diese Weise, würde ich? – muffel