从 iframe 上传文件的安全隐患是什么?

时间:2021-02-18 19:21:09

标签: javascript html iframe browser websecurity

假设我有一个绘图 html 应用程序,我的用户可以在他们的网页中使用它。它们包括在 iframe 中设置其 src 的小部件(将它们生成的键作为查询字符串传递),我将它与 frame-ancestors 标头一起发送以限制使用他们的域,并且他们的用户可以使用小部件进行绘制。

现在假设他们想要加载保存在他们服务器上的绘图并将它们传递给我的 iframe 小部件,并且他们希望用户单击按钮(在他们的站点上)将当前绘图保存在他们的服务器上。在这两种情况下,他们都可以向我的 iframe 发送一条消息,指定一个签名的 url,我的 iframe 可以侦听该事件并使用 fetch 分别下载或上传所需的资产。

我代表他们下载或上传 iframe 的安全隐患是什么?这个设置是可靠的还是可以被滥用?如果可以滥用,如何使用?

1 个答案:

答案 0 :(得分:1)

我不确定是否可以下载和上传 ,但可以与 iframe 共享/传递消息。

此处有更多详细信息 - https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

安全问题

如果您不希望从其他站点接收消息,请不要为消息事件添加任何事件侦听器。这是避免安全问题的万无一失的方法。

如果您确实希望从其他站点接收消息,请始终使用来源和可能的来源属性验证发件人的身份。任何窗口(包括,例如,http://evil.example.com)都可以向任何其他窗口发送消息,并且您无法保证未知发件人不会发送恶意消息。但是,在验证身份后,您仍应始终验证接收到的消息的语法。否则,您信任的站点中仅发送受信任消息的安全漏洞可能会在您的站点中打开跨站点脚本漏洞。

当您使用 postMessage 将数据发送到其他窗口时,始终指定确切的目标来源,而不是 *。恶意站点可以在您不知情的情况下更改窗口的位置,因此它可以拦截使用 postMessage 发送的数据。

相关问题