Leggere la documentazione di ngSanitize, sembra che usi due whitelist per determinare quali dati bloccare (described here, in $compileProvider
).
Le due whitelist sono aHrefSanitizationWhitelist([regexp])
e imgSrcSanitizationWhitelist([regexp])
. Tuttavia, sembra che questi due gestiscano solo gli URL per i collegamenti per prevenire gli attacchi XSS.
È possibile utilizzare sce.trustAsHtml()
(o, eventualmente, data-bind-html-unsafe
se è ancora una cosa, ma penso che sia deprecato) ma non è esattamente quello che si desidera; questo ti aprirà a tutto il codice HTML, sicuro o non sicuro.
Potrebbe valerne la pena controllare lo documentation for $sce
. Guardandolo fino ad ora, c'è un'opzione per l'escape del CSS, ma non sono sicuro che sfuggirebbe ai CSS in linea in un tag HTML. Finora, non vedo alcuna opzione per fornire una whitelist al metodo parseAs
.
Edit:
Guardando attraverso il $sanitize
source code, sembra come se fosse impostato per consentire cose in grande stile tag, ma non lo stile attributi. Gli attributi di stile verranno eliminati da sterilizzare a meno che non si modifichi il codice sorgente. Le classi, tuttavia, non vengono rimosse, quindi potresti avere una soluzione alternativa. (In effetti, consentendo classi e non stili in linea, è possibile limitare l'utilizzo dello stile nella sezione commenti.)
L'unica altra alternativa sarebbe quella di eseguire il rollover, a quanto pare, a meno che qualcuno non lo abbia già.
fonte
2014-10-01 19:28:58
Non dovresti disinfettare il lato server? –
@MattWay potresti avere ragione, ma l'alternativa sarebbe di analizzare il CSS integrato e avvolgere l'elemento con alcuni tag HTML di formattazione, ma non sarei in grado di farlo ad es. impostare un colore del carattere in questo modo, dovrei? Lo stile – muffel