javascript - 我可以在跨域 iframe 中安全地使用 HTML5 History API 吗?

标签 javascript security iframe cross-domain html5-history

我有一个 Web 应用程序,用户 HTML 5 History (推送状态等)。我希望这个应用程序能够在跨域 iframe 中加载(有点像 FB 或 Twitter iframe)。 HTML 片段(带有必要的 iframe 标签)可以插入到任何页面中,并且该页面将包含我的应用程序的 iframe 版本。例如,如果我的 Web 应用程序位于 app.mywebapp.com,aRandomWebsite.com 可能具有以下 HTML 结构

<html>
    <head>
    </head>
    <body>
        <iframe src="https://app.mywebapp.com/"></iframe>
    </body>
</html>

我知道in the past ,跨域 iframe 并不完全相互隔离,并且可能会相互干扰某些变量,例如 window.location。我的问题是,如果我在 iframed 应用程序中执行以下代码,父框架(可能非常敌对)是否能够看到它?

window.history({}, '', 'aSecureRoute/thisIdIsVerySensitive');

最佳答案

这应该是安全的,因为跨域 DOM 访问受到 Same Origin Policy 的保护.

也就是说,可能存在一些怪癖,使得 www.evil.com 能够抓取或 test URLs在流行浏览器的 future 版本中 - 这完全取决于将来发现的漏洞。由于您无法解释 future 的浏览器错误,因此我建议您在应该保护此访问的基础上继续操作。如果发现任何漏洞,您可以引导用户使用其他浏览器,直到当前浏览器得到修复。

请记住,URL 不应被视为安全的,因为它们可以存储在浏览器缓存或历史记录中(或添加书签),也可以由代理记录(如果不受 HTTPS 保护)或存储在服务器日志中。

您还应该使用其他东西(例如安全 session cookie)来保护您的安全 URL,因此,如果邪恶网站获取了它,那么将来如果没有 cookie,它就无法使用它。

关于javascript - 我可以在跨域 iframe 中安全地使用 HTML5 History API 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24483020/

相关文章:

javascript - 单击对象中最后一张图像之后的图像时,如何切换图像?

asp.net - 授予 Asp.Net 用户帐户修改网站根目录的权限是否安全?

javascript - 获取不包括滚动条的整个 iframe 内容的大小

javascript - 如何在html中的javascript中显示内部图像

javascript - JavaScript的执行栈在PC上用在哪里?

ios - 使用钥匙串(keychain)提高 iOS 应用程序安全性

security -/var/lib/kubelet/pods下的目录权限

javascript - Demandforce 任命表格,与 Wordpress 集成

javascript - 使用 Javascript 添加 PDF 需要鼠标焦点

javascript - JSUnit 中的 assertEquals() 实际上做了什么?