我有一个响应HTML的Api。由于xss,我不想完全信任内容。
但是有时我会基于白名单在信任的响应中包含iframe。
我知道bypassSecurityTrustHtml()
的可能性,但是我没有找到如何部分信任Html的方法。
例如: api响应
<p>Some test text<br class='autobr' />\n<strong>some
more</strong></p>\n<iframe
src=\"https://player.vimeo.com/video/289729765\" width=\"640\"
height=\"360\" frameborder=\"0\" webkitallowfullscreen
mozallowfullscreen allowfullscreen></iframe>\n<p><a
href=\"https://vimeo.com/289729765\">Mike Hopkins: The
Backyard</a> from <a
href=\"https://vimeo.com/diamondback\">Diamondback Bicycles</a>
on <a href=\"https://vimeo.com\">Vimeo</a>.</p>\n<p>and the
end</p>
然后,我只想信任iframe并显示整个文本,例如:<div innerHtml="myResponse"></div>
我尝试提取iframe,将其信任,然后将其替换为受信任的SafeHtml
。那没用。
是否有可能部分绕过SecurityTrustHtml()?
我正在使用Angular 6 ...
感谢您的帮助
答案 0 :(得分:0)
您可能使用了错误的属性绑定语法。
<div innerHtml="myResponse"></div>
应该是
<div [innerHTML]="myResponse"></div>
PS-不确定到底是拼写错误还是实际的语法问题。