我没有得到SafeUrl / SafeStyle背后的概念

时间:2017-10-11 20:00:13

标签: angular security

前段时间我意识到我不能简单地将字符串传递给<img ...>标签或背景样式的href参数。仅接受SafeUrlSafeStyle个实例。坦率地说,我没有得到整个概念,因为我可以通过简单的调用来清理任何图像URL或样式。如果我可以建立一个安全的管道,将安全的图像href从可靠的后端API编辑到View层,这可能是合理的。 Buf @angular/platform-browser API不能注入服务,所以我应该在控件中清理URL,我缺少任何可以帮助我区分源可靠性的上下文。也许我错过了什么?

1 个答案:

答案 0 :(得分:5)

清理意味着您明确告诉Angular认为内容安全。 它只是Angular的标记,你承担责任,而Angular不需要检查内容是否存在潜在的不安全内容。只有“消毒”内容,您知道它来自哪里,并且不能包含有害内容。

这也是你需要使用属性绑定表示法[innerHTML]="sanitizedConent绑定它的原因,因为innerHTML="{{sanitizedContent}}" sanitizedContent被字符串化(toString调用)并且标记丢失了这个过程。