使用没有会话或 cookie 数据的 iFrame(隐身)

2024-03-11

如果您使用iFrameHTML 文档中的元素,子页面将加载来自浏览器的所有会话和 cookie 数据。

例如:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Stack Overflow in an iFrame</title>
  </head>
  <body>
    <h1>Stack Overflow in an iFrame</h1>
    <iframe src="http://stackoverflow.com" width="640" height="480" />
  </body>
</html>

暂时忽略 SO 实际上不允许自己加载到 iFrame 中。如果是这样,iFrame 加载的 SO 页面将显示您已登录。

如何在没有任何 cookie 或会话数据的情况下使用 iFrame?(就像 Chrome 中的隐身模式)

Why?

我的公司销售一种产品(网络应用程序),供人们用来构建定制网站。当他们通过身份验证并访问其网站时,我们会向他们展示经过身份验证的 UI 版本,以便他们可以编辑内容。未经授权的用户只能看到静态网站。使用多个浏览器或清除 cookie 并不是我们用户的合理期望,因此我们希望在 iFrame 中向他们显示其网站的预览,以便他们可以看到访问者会看到的内容。我们还希望使用较小分辨率的 iFrame 来显示网站的“移动”预览,以便他们可以看到访问者通过手机访问网站时会看到的内容。这些 iFrame 需要在不访问浏览器的 cookie 或会话数据的情况下加载,以便它们以未经身份验证的模式加载,就像 Chrome 在隐身模式下加载一样。

我还没有尝试过任何事情,因为我不知道从哪里开始。我确实发现了HTML5添加了一些sandbox的属性值iFrame element http://www.w3schools.com/tags/att_iframe_sandbox.asp,但它们似乎都不能帮助解决这个问题。也许可以用 JavaScript 来做一些事情,我们已经在我们的项目中使用了 jQuery。

注意:我们的目标是仅使用有效的 HTML5


如果您完全控制 Webstack,添加将用户视为未经身份验证的预览参数不是更容易吗?

例如:

<iframe src="http://stackoverflow.com?preview=1" width="640" height="480" />

随后绕过您的授权检查预览标志是否存在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用没有会话或 cookie 数据的 iFrame(隐身) 的相关文章

随机推荐