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