1

我在我的网页中使用 angular(8) 并希望将几个iframes 显示为innerHTML.

默认情况下,角度 domsanitizer 会删除有风险的元素。我知道我可以通过使用bypassSecurityTrustHtml功能等来禁用它。( https://angular.io/api/platform-b​​rowser/DomSanitizer )

然而,由于内容将是用户生成的,我不能简单地绕过 Domsanitizer,因为它太冒险了。但是我想知道是否可以允许某些已知的域,例如我自己的域。因此,我需要为 Sanitizer 提供某种具有安全域的白名单。到目前为止,谷歌没有返回任何有用的东西,所以我想知道:这可能吗?如果可以,我会怎么做?

4

1 回答 1

1

我认为在 Angular 中很难做到这一点,除非你实现自己的 DomSanitizer。根据此处的源代码,iframe 不在白名单中。过滤规则似乎无法扩展。我建议你在这里自己做过滤,或者使用一些第三方库,比如js-xss,它允许你定义 whilelist。

于 2020-03-31T03:24:04.473 回答