iframe没有在Chrome中读取Cookie

Tyl*_*ler 6 javascript cookies iframe google-chrome cross-domain

Chrome不允许儿童iframe阅读自己的Cookie.

我有一个包含子iframe的父网页:

  • 父母在 https://first-site.com
  • 孩子在<iframe src="https://second-site.com">(父母的内部)
  • 饼干设置
    • 路径:'/'
    • 安全:是的
    • httpOnly:false
    • 域名:'.second-site.com'

我控制两个站点,我希望iframe在iframe中执行需要读取cookie的操作.second-site.com.外部父母不需要知道任何关于此的事情.

它适用于除Chrome以外的所有浏览器.

Chrome根本不会让孩子可以使用子页面自己的cookie.

在自己的窗口中访问子页面并执行操作适用于所有浏览器,包括Chrome.

我已经在所有排列中尝试了这两个选项:

  • 设置secure:falsesecure:true用于cookie
  • sandbox="allow-same-origin allow-scripts"为iframe 设置,或删除sandbox属性

什么是Chrome的不同之处,Chrome中的iframe如何访问自己的Cookie?

Tyl*_*ler 10

有一个相对较新的cookie属性SameSite,由我的服务器自动设置.禁用此功能(同时保留问题中列出的设置)允许iframe访问Chrome中自己的Cookie.

另请参阅Chrome功能状态IETF草稿

  • 有人可以告诉我这是否仍然有效/在 2021 年再次有效吗?我的 chrome 版本是:90.0.4430.93 (4认同)
  • 如何禁用 SameSite 属性? (3认同)
  • 此解决方案不再适用于 Chrome 84 版本。请指教。 (3认同)
  • 也必须设置安全标志!(仅使用 HTTPS 是不够的) (2认同)
  • @ChrisRuck 已更新;现在您必须明确将 SameSite 设置为“None” (2认同)