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

Min*_*eat 4 security angular

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

Gün*_*uer 5

消毒意味着您明确告诉Angular认为内容安全.它只是Angular的标记,你承担责任,而Angular不需要检查内容是否存在潜在的不安全内容.只有"消毒"内容,您知道它来自何处以及它不能包含有害内容.

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