前段时间我意识到我不能简单地将字符串传递给<img ...>
标签或背景样式的href参数。仅接受SafeUrl
和SafeStyle
个实例。坦率地说,我没有得到整个概念,因为我可以通过简单的调用来清理任何图像URL或样式。如果我可以建立一个安全的管道,将安全的图像href从可靠的后端API编辑到View层,这可能是合理的。 Buf @angular/platform-browser
API不能注入服务,所以我应该在控件中清理URL,我缺少任何可以帮助我区分源可靠性的上下文。也许我错过了什么?
答案 0 :(得分:5)
清理意味着您明确告诉Angular认为内容安全。 它只是Angular的标记,你承担责任,而Angular不需要检查内容是否存在潜在的不安全内容。只有“消毒”内容,您知道它来自哪里,并且不能包含有害内容。
这也是你需要使用属性绑定表示法[innerHTML]="sanitizedConent
绑定它的原因,因为innerHTML="{{sanitizedContent}}"
sanitizedContent
被字符串化(toString
调用)并且标记丢失了这个过程。