iceluo 2021-04-29 16:58:24 1625次浏览 1条评论 0 0 0

1、升级框架,如果你跟我一样框架源码是 2.0.15,那么首先你需要进行升级
升级方法 https://github.com/yiisoft/yii2/blob/2.0.32/framework/UPGRADE.md

2、修改代码 controllers\BaseController.php

public function afterAction($action, $result)
{
    $cookies = \Yii::$app->response->getCookies();
    foreach ($cookies as $cookie){
        $cookie->sameSite = 'none';
        $cookie->secure = true;
    }
    return parent::afterAction($action, $result);
}

方案说明

  1. 禁用浏览器 samsite 属性/或降低版本(目前仅 chorme 存在)
  2. 保证同源策略 cookie 共享(保证ip或域名一直)
  3. 设置 response.setHeader("Set-Cookie", "HttpOnly;Secure;SameSite=None"),需设置 https 证书
  4. 不使用 cookie 共享会话,使用 token 实现
您需要登录后才可以评论。登录 | 立即注册