javascript - 使用没有 session 或 cookie 数据的 iFrame(隐身)

标签 javascript html session iframe cookies

如果您在 HTML 文档中使用 iFrame 元素,子页面将加载来自浏览器的所有 session 和 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 或 session 数据的情况下使用 iFrame?(如 Chrome 中的隐身模式)

为什么?

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

我还没有尝试过任何东西,因为我不知道从哪里开始。我确实发现 HTML5 added some sandbox attribute values to the iFrame element ,但他们似乎都没有帮助解决这个问题。也许可以用 JavaScript 来做一些事情,我们已经在我们的项目中使用了 jQuery。

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

最佳答案

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

例如:

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

如果存在预览标志,则绕过您的授权检查。

关于javascript - 使用没有 session 或 cookie 数据的 iFrame(隐身),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641843/

相关文章:

javascript - Grunt-express 和静态路由 : Server should provide a function called "listen" that acts as http. Server.listen

javascript - jQuery - 将多个选择的下拉值存储在数组中

javascript - 向下滚动后将 div 固定在顶部?

php - 使用 CodeIgniter 登录和 session

javascript - 如何测试在浏览器中发送需要身份验证的请求的函数?

python - Flask session 在蓝图中不持久

javascript - react JS : React Voice to Text Recognition

Javascript 绑定(bind)到 Div 标签

javascript - 有没有办法只接受字母而不接受数字作为输入?如果给出数字,它应该显示验证错误,因为它只需要字母

HTML5 标签在 TRidion 2011 的 RTF 字段中不起作用