iframe跨域带cookie问题, Cookie 的 SameSite 属性
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2021-10-09 12:57:29
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
问题描述
在页面中使用iframe嵌套另一个主域的页面时,cookie带不过去,登陆状态丢失,但单独打开地址确实是可以登陆
详情查看 http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html
apache设置
Header always edit Set-Cookie (.*) "$1; SameSite=Lax"
nginx设置
location / { # your usual config ... # hack, set all cookies to secure, httponly and samesite (strict or lax) proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict"; }
php session修改
ini_set('session.cookie_samesite', 'None'); // 或 session_set_cookie_params(['samesite' => 'None', 'secure'=>true]);
php>=7.3
setcookie($name, $value, [ 'expires' => time() + 86400, 'path' => '/', 'domain' => 'domain.com', 'secure' => true, 'httponly' => true, 'samesite' => 'None', ]);
php<7.3
//通过header设置 header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax"); //通过setcookie方法设置,利用path传入"/;samesite=None",这是利用php的一个bug,不会对path里面的“;”进行处理 setcookie('cookie-name', '1', 0, '/; samesite=strict');