javascript - 确保第三方 iframe 上的脚本注入(inject)和执行安全

标签 javascript security

我希望能够将脚本注入(inject)到由我自己的服务器提供的页面内的 iframe 页面(托管在第 3 方服务器上)(以可视化 wysiwyg 应用程序的更改)。

由于我在“目标”页面上有一个小 stub 脚本,所以我猜想只有一个方法允许任意脚本执行传递给它的任何内容。显然,这听起来并不安全,因为它会为一些简洁的 XSS 开启攻击向量。我保护它的想法之一是在我想要运行的脚本旁边传递某种 token , stub 客户端代码将与服务器进行检查,然后才执行脚本。这有道理吗?有人能给我指出任何先例吗?

非常感谢

最佳答案

首先,听起来您在实际 iFrame 中控制了少量代码。您的建议不是允许其他人通过该 stub 注入(inject)脚本(这会让您面临各种攻击),为什么不将您想要的实际“安全”代码放入 iframe 中,然后只通知结果的父框架?

其次,有无数关于安全跨域 iframe 通信的网页。由于我仍然不确定您到底想做什么,您可能需要自己进行搜索并找到最适合您的机制。在 Google 中搜索“安全跨域 iframe 通信”可以找到大量信息。

第三,我遇到的最喜欢的文章是Cross Domain Communication with iFrames最安全的技术看起来像 postMessage因为它只共享数据,不允许代码调用,并且实际上可以检查它信任的来源,尽管 postMessage 仅在较新的浏览器中可用,因此您必须回退到也可在较旧的浏览器中使用的其他技术之一。这是 jQuery plugin当可用时使用 postMessage,当不可用时则回退到另一种技术。

如果此信息还不够,请告诉我们更多有关您尝试在 iFrame 中执行的操作或您尝试在两个源之间传递哪些信息的信息?

关于javascript - 确保第三方 iframe 上的脚本注入(inject)和执行安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6563106/

相关文章:

javascript - Slickgrid 或 Flexigrid

javascript - 如何从一系列具有相同 id 的文本框中获取值

JavaScript 范围 : referencing parent object member from child member's closure

python - 有没有办法为 Python 的 eval 保护字符串?

javascript - Angularjs 和 typeahead,如何摆脱 [object Object]

javascript - 什么是 phantom JS 错误代码 1?

database - 在我的数据库中存储私有(private)电子邮件地址

c - 程序停止时保护堆数据

security - 可以在没有 SSL 的情况下设计和测试安全的 Web 应用程序吗?

java - 在 Android 上本地安全地存储 key 或密码