iframe中关于cookie的操作

先说结论:

跨站的iframe中,写入对应cookie,需要设置
SameSite=None; Secure
否则无法写入成功

相关细节

跨域和跨站

域名/端口/协议三者相同即为同一个域.

二级域名相同即为同一个站.

参考:https://cloud.tencent.com/developer/article/1751237

SameSite

Strict,Lax,None三个属性用来控制对应cookie何时可以在请求中发送.

默认为Lax:跨站时,部分get请求可以携带cookie.

参考:http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html

Secure

设置为Secure的cookie,仅在发起https请求时可以携带.
只有https页面可以使用Secure标记写入cookie.

iframe的cookie写入

当iframe和父级页面为同站时,cookie写入正常
当iframe和父级页面为不站时,所有cookie无法写入
当iframe为https且使用SameSite=None; Secure时,才可以写入cookie.

参考:https://support.google.com/chrome/thread/33543699/document-cookie-is-not-working-with-iframe-windows-10-chrome-80-0-3987-132?hl=en

测试页面

https://www.beski.in/demo/test-parent.html

参考文档:
https://juejin.cn/post/6844904095476613133


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!