javascript - Angular 8 DomSanitizer 白名单?

标签 javascript angular angular-dom-sanitizer

我在网页中使用 Angular(8),并希望将多个 iframe 显示为 innerHTML

默认情况下, Angular domsanitizer 会删除危险元素。我知道我可以使用 bypassSecurityTrustHtml 函数等来禁用此功能。 (https://angular.io/api/platform-browser/DomSanitizer)

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

最佳答案

我认为在 Angular 中很难做到这一点,除非你实现自己的 DomSanitizer。基于源码here ,iframe 不在白名单中。过滤规则似乎无法扩展。我建议您自己在这里进行过滤,或者使用一些第三方库,例如 js-xss它允许您定义 while 列表。

关于javascript - Angular 8 DomSanitizer 白名单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59740721/

相关文章:

angular - 自定义属性绑定(bind) @Input 不起作用

javascript - Angular - 从 Promise 同步获取

使用 eval 或 domsanitizer 执行自定义用户脚本的 Javascript

angular - 如何在 Angular 中使用 DomSanitzer bypassSecurityTrustScript() 将脚本作为字符串运行

javascript - 什么是跨平台免费/开源框架,可使用 HTML/CSS/JS 创建基于 Touch 的 Web 应用程序/网站?

javascript - 为什么 console.log 会这样?

javascript - 使用 Safari Web 检查器调试内存泄漏?

angular - ionic : undefined is not a constructor FileReader

javascript - 带延迟的递归函数

angular - 创建抽象类 DomSanitizer 的实例