有没有一种在 Angular 7 中嵌入 iframe 的安全方法?

Posted

技术标签:

【中文标题】有没有一种在 Angular 7 中嵌入 iframe 的安全方法?【英文标题】:Is there a safe way of embedding iframe in Angular 7? 【发布时间】:2020-02-14 02:59:11 【问题描述】:

设置 iframe url 的唯一方法是执行this.domsanitizer.bypassSecurityTrustResourceUrl(url)。但是像 veracode 这样的静态代码分析工具将此作为一个高漏洞问题提出来,我认为这是正确的。但是有没有办法像白名单一样安全地信任 url?

【问题讨论】:

【参考方案1】:

如果您不控制 iframe 的内容,则它始终存在安全风险。如果不“绕过”一些清理过程并信任资源,根本无法在您的页面中使用 iframe。

也许你可以实现你自己的sanitizer 和 sanitize 方法来满足你的自定义需求,如果 url 的内容是你可以精确假设的内容。这将比仅仅信任它更安全,并且分析工具也可以这样做。

【讨论】:

【参考方案2】:

您可以在 iframe 中使用sandbox attribute。

【讨论】:

沙盒实际上与清理它是一回事,除非你允许脚本等内容,这与绕过 Angular 中的清理相同

以上是关于有没有一种在 Angular 7 中嵌入 iframe 的安全方法?的主要内容,如果未能解决你的问题,请参考以下文章

另一种在WINFORM中使用XNA的方法

Angular如何在组件中使用嵌入脚本

Angular Js中的JQuery数据库Ng-Click无法正常工作?

如果 url 包含嵌入 html 数据,如何在 Webview 中显示 pdf?

有没有一种在 flex 中获得三态复选框的好方法?

一种在android中获取解锁事件的方法?