使用iframe或CORS,哪个安全性更高,可用于创建要嵌入第三方网站的小部件?

布吉兹

在构建旨在嵌入第三方网站上的窗口小部件时,似乎有两种关于如何做到这一点的思路:

  • 使用iframes
  • 使用主页的DOM

使用该iframe方法时,跨域请求不是问题,因为服务器认为该请求源自其自己的页面。

使用主页的DOM时,跨域请求是一个问题,服务器需要使用适当的CORS标头进行响应才能正常工作。

这两种方法中哪一种更为安全?在实现每种方法时应考虑哪些安全问题?

银光狐狸

您可能会发现这篇文章很有趣-如何保护小部件免受伪造的请求

您不希望此[widget]容易受到CSRF的攻击,因此您将iframe写入页面。根据起源继承规则,父站点将无法读取CSRF令牌。但是,点击劫持(或likejacking)呢?由于CSRF,您必须位于iframe内,并且x-frame-options不能解决问题,对于帧破坏者也是如此

IFrame方法的缺点

DOM方法的缺点

  • 易受CSRF攻击
  • 您服务器上的CORS标头将允许您访问整个世界或向您预先注册的整个网站。尽管这本身并不表示存在漏洞,但必须注意确保没有任何敏感信息(例如用户数据)可用。没有办法只限制对窗口小部件的访问-您将授予对整个窗口小部件Origin(即协议,域和端口)的访问权限
  • 在操作DOM时,可以从窗口小部件外部的页面其余部分访问这些对象。

概要

最后,它取决于小部件的功能。父站点自动提交表单或在用户上下文下单击窗口小部件上的按钮会产生什么结果?如果有一个“赞”或“ +1”按钮,则在用户不知情或未同意的情况下,通过向您注册“喜欢” / + 1可以在托管页面上欺诈性地推广其网站。这将适用于两种方法,只有攻击方法有所不同(即CSRF或Clickjacking)。

上述帖子中接受的答案提供了CSRF与Clickjacking的解决方案:

单击窗口小部件需要打开一个包含新页面的弹出窗口-iframe不够好,它必须是新窗口-完全在您的Web应用程序的控制之下。确认该页面上的操作,无论它是什么。

是的,这有点不雅致,但是当前的Web安全体系结构没有给您任何更好的选择。

总之,IFrame方法似乎总体上具有更高的安全性,并且在交互时实施弹出窗口可减轻Clickjacking风险。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用AngularJs构建可嵌入第三方网站的小部件?

来自分类Dev

如何在 Angular 中动态嵌入来自 Cloudinary 的第三方 javascript 小部件?

来自分类Dev

Domino Agent使用/ jvm / lib / ext中的第三方jar挣扎于Java安全性

来自分类Dev

iframe或JS将Rails嵌入第三方网站?

来自分类Dev

使用Google Analytics(分析)对第三方JavaScript小部件进行A / B测试

来自分类Dev

使用第三方npm jquery模块的自定义窗口小部件

来自分类Dev

使用Laravel Passport登录第三方网站

来自分类Dev

如何使用Google Analytics(分析)针对第三方网站创建跟踪像素?

来自分类Dev

GNOME推迟非安全性更新-这会降低当前第三方应用程序的安全性吗?

来自分类Dev

嵌入到iframe中的外部商店使用Cookie-如果用户阻止了第三方Cookie,是否可以?

来自分类Dev

是否可以在第三方网站中嵌入Google网络应用程序?

来自分类Dev

在第三方网站上嵌入Google Analytics(分析)基准测试报告

来自分类Dev

使用第三方控件

来自分类Dev

使用第三方控件

来自分类Dev

第三方库的使用

来自分类Dev

包含/嵌入第三方javascript的最安全方法

来自分类Dev

我的电报网站登录小部件停止工作。如何为最近更新的浏览器设置第三方Cookie?

来自分类Dev

如何通过iframe调用对第三方网站进行身份验证

来自分类Dev

如何通过iframe调用对第三方网站进行身份验证

来自分类Dev

当第三方小部件更改其自身的反应性数据源时,流星避免两次刷新

来自分类Dev

没有API的第三方网站抓取

来自分类Dev

调用第三方API时处理CORS

来自分类Dev

应该使用哪个第三方存储库在 docker 的 Redhat 7 中安装 git?

来自分类Dev

在Qt中使用第三方dll(没有可用的.lib文件)

来自分类Dev

在Qt中使用第三方dll(没有可用的.lib文件)

来自分类Dev

是否可以将NewRelic用于第三方服务的常规可用性监视,而无需在其上安装New Relic代理?

来自分类Dev

计算类的实例-使用Firebug将jQuery注入第三方网站吗?

来自分类Dev

使用C#更好的方法来在第三方网站上搜索数据

来自分类Dev

如何使用php从第三方网站解析格式错误的RSS feed?

Related 相关文章

  1. 1

    如何使用AngularJs构建可嵌入第三方网站的小部件?

  2. 2

    如何在 Angular 中动态嵌入来自 Cloudinary 的第三方 javascript 小部件?

  3. 3

    Domino Agent使用/ jvm / lib / ext中的第三方jar挣扎于Java安全性

  4. 4

    iframe或JS将Rails嵌入第三方网站?

  5. 5

    使用Google Analytics(分析)对第三方JavaScript小部件进行A / B测试

  6. 6

    使用第三方npm jquery模块的自定义窗口小部件

  7. 7

    使用Laravel Passport登录第三方网站

  8. 8

    如何使用Google Analytics(分析)针对第三方网站创建跟踪像素?

  9. 9

    GNOME推迟非安全性更新-这会降低当前第三方应用程序的安全性吗?

  10. 10

    嵌入到iframe中的外部商店使用Cookie-如果用户阻止了第三方Cookie,是否可以?

  11. 11

    是否可以在第三方网站中嵌入Google网络应用程序?

  12. 12

    在第三方网站上嵌入Google Analytics(分析)基准测试报告

  13. 13

    使用第三方控件

  14. 14

    使用第三方控件

  15. 15

    第三方库的使用

  16. 16

    包含/嵌入第三方javascript的最安全方法

  17. 17

    我的电报网站登录小部件停止工作。如何为最近更新的浏览器设置第三方Cookie?

  18. 18

    如何通过iframe调用对第三方网站进行身份验证

  19. 19

    如何通过iframe调用对第三方网站进行身份验证

  20. 20

    当第三方小部件更改其自身的反应性数据源时,流星避免两次刷新

  21. 21

    没有API的第三方网站抓取

  22. 22

    调用第三方API时处理CORS

  23. 23

    应该使用哪个第三方存储库在 docker 的 Redhat 7 中安装 git?

  24. 24

    在Qt中使用第三方dll(没有可用的.lib文件)

  25. 25

    在Qt中使用第三方dll(没有可用的.lib文件)

  26. 26

    是否可以将NewRelic用于第三方服务的常规可用性监视,而无需在其上安装New Relic代理?

  27. 27

    计算类的实例-使用Firebug将jQuery注入第三方网站吗?

  28. 28

    使用C#更好的方法来在第三方网站上搜索数据

  29. 29

    如何使用php从第三方网站解析格式错误的RSS feed?

热门标签

归档