gpt4 book ai didi

google-chrome - 为什么 iframe 请求不发送 cookie?

转载 作者:行者123 更新时间:2023-12-04 02:26:58 24 4
gpt4 key购买 nike

一个兄弟部门创建了一个 HTML 文件,它实际上是少数 iframe 的脚手架。每个 iframe 调用一个报告,该报告托管在 Web 服务器上,参数略有不同。被调用的报告将向未经身份验证的用户显示登录表单,或向已通过身份验证的用户显示报告内容。

脚手架.html:

<html>
<head>
<title>I just show the output from a bunch of report calls</title>
</head>
<body>
<iframe src="https://somesite.com/useful_report.html?parameter1=a&parameter2=1" id="iframe1"></iframe>
<iframe src="https://somesite.com/useful_report.html?parameter1=b&parameter2=2" id="iframe2"></iframe>
<iframe src="https://somesite.com/useful_report.html?parameter1=c&parameter2=3" id="iframe3"></iframe>
<iframe src="https://somesite.com/useful_report.html?parameter1=d&parameter2=4" id="iframe4"></iframe>
</body>
</html>

同级组织向我们解释说,如果用户登录到 https://somesite.com ,上述设置效果很好——每个 iframe 都会显示有用的报告.html 内容......直到几天前。

当我
  • 登录 https://somesite.com ,然后
  • 将 file:///C:/Users/me/Desktop/scaffold.html 加载到 Chrome

  • 每个 iframe 返回 https://somesite.com在表格上签名。如果我随后在单独的选项卡中打开有用报告.html,报告内容会加载(证明 somesite.com 知道我仍然登录‡)。

    使用开发人员工具,我可以看到到有用报告.html 的请求 header 不包含“Cookie:”属性,因此这解释了为什么有用报告.html 返回登录表单。

    我的问题是 为什么 iframe 请求不发送 cookie? 什么 Chrome 和/或服务器设置/策略/指令阻止它?

    ‡ - 现在它知道我知道它知道。

    最佳答案

    这是因为 同一网站 Chrome defaults to Lax 的 cookie 政策,这意味着除非用户可以看到不包括 iframe 的 URL,否则不会发送 cookie。
    如果您拥有 somesite.com,则可以通过将 SameSite 策略设置为 None 来选择退出此策略,并通过 Double Submit Cookie 处理 CSRF 攻击的风险.

    关于google-chrome - 为什么 iframe 请求不发送 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53842054/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com