Chrome 不允许子 iframe 读取自己的 cookie。
我有一个带有子 iframe 的父网页:
- 家长在
https://first-site.com
- 孩子在
<iframe src="https://second-site.com">
(父级内部)
- cookie set with
- 小路: '/'
- 安全:真实
- 仅http:假
- 域名:'.second-site.com'
我控制这两个站点,并且我希望 iframe 在 iframe 内执行需要读取 cookie 的操作.second-site.com
。外部父级不需要知道任何事情。
它适用于除 Chrome 之外的所有浏览器。
Chrome 根本不让子页面自己的 cookie 可供子页面使用。
在子页面自己的窗口中访问子页面并执行操作适用于所有浏览器,包括 Chrome。
我已经在所有排列中尝试过这两个选项:
- Set
secure:false
or secure:true
为了饼干
- Set
sandbox="allow-same-origin allow-scripts"
对于 iframe,或删除sandbox
属性
Chrome 的做法有何不同?Chrome 中的 iframe 如何访问自己的 cookie?
有一个相对较新的 cookie 属性称为SameSite
这是我的服务器自动设置的。禁用此功能(同时保留问题中列出的设置)允许 iframe 访问 Chrome 中自己的 cookie。
也可以看看Chrome 功能状态 https://www.chromestatus.com/feature/4672634709082112 & IETF草案 https://datatracker.ietf.org/doc/html/draft-west-first-party-cookies-07
2020 年 8 月更新
Chrome 现在可以阻止 cookieSameSite
设置,因此您需要显式地将其设置为samesite=none
and secure=true
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)