Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angular – 如何检查带有iframe的html是否安全?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我从HTML代码的API字符串获取,其中可能包含来自以下服务的嵌入视频:

> youtube.com,
> vimeo.com,
> dailymotion.com,
> prezi.com

如果我确定它足够安全,我可以将它们转换为可信的SafeHtml(绕过Angular的消毒剂):

this.safeHtml = this._sanitizer.bypassSecurityTrustHtml(this.htmlFromApi);

然后将它放在这样的页面上:

<div [innerHtml]="safeHtml"></div>

问题:

>我必须执行哪些检查以确保此字符串足够安全? (它不包含嵌入式脚本,只导致这四个站点中的一个没有任何棘手的重定向)?
>以某种方式将这些网站添加到Angular的消毒剂的例外中是否有意义?如果是的话怎么做?

提前致谢!

附:我看到了类似的问题:How to check if string of HTML is safe?但我希望有一些更新鲜和与Angular最佳实践相关的东西

解决方法

@H_502_38@ 然不是特定角度的答案;你想在你的网站上有一个 Content Security Policy标题,只允许通过(i)框架访问cerain网站.

例:

Content-Security-Policy: 
         default-src 'self' https:; 
         script-src 'self' https:; 
         frame-src: https://*.youtube.com https://*.vimeo.com 
                    https://*.dailymotion.com https://*.prezi.com;

(标题是多行的,仅用于阅读清晰度)

此CSP为您的网站设置了一些规则,以便

>认仅允许引用网站本身(“自我”)并且仅通过https.
>脚本只能是[安全访问]文件而非内联脚本,并且必须从同一网站调用这些文件.
>(i)网站上的帧只能调用指定的域名.我已将https地址类型放在此处作为最佳做法,并且您必须注意,这将*拒绝访问占位符URL,例如https://y2u.be,但您可以根据需要添加这些变体.

上述CSP声明完全符合您在问题中的要求,因此无需过滤SafeHtml清理程序之外的某些域.

清洁剂仍然可能需要通过 – 不知何故 – 但我不知道角度所以无法回答这个细节.

Read more about the frame-src CSP directve.

编辑

如果用户使用非TLS连接或您的网站不是TLS安全的更灵活的示例,还包括短URL的示例:

Content-Security-Policy: 
         default-src 'self'; 
         script-src 'self'; 
         frame-src: https://*.youtube.com https://*.vimeo.com 
                    https://*.dailymotion.com https://*.prezi.com
                    http://*.youtube.com http://*.vimeo.com 
                    http://*.dailymotion.com http://*.prezi.com
                    https://youtu.be;

大佬总结

以上是大佬教程为你收集整理的angular – 如何检查带有iframe的html是否安全?全部内容,希望文章能够帮你解决angular – 如何检查带有iframe的html是否安全?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。