2016-07-06 17:58:16 2857次浏览 2条回答 0 悬赏 10 金钱

如何在刷新页面的时候,生成一个csrf,存到cookie里,在线等!

  • 回答于 2016-07-07 09:57 举报

    在form表单中加入隐藏域不行吗?

    <input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">
    

    放到cookie:

    $cookies = Yii::$app->response->cookies;
    $cookies->add(new \yii\web\Cookie([
        'name' => '_csrf',
        'value' => Yii::$app->request->csrfToken,
    ]));
    
  • 回答于 2016-07-07 09:59 举报

    你的意思是:每次页面刷新时,都要生成一个csrf吗?
    在控制器中:

    $csrfValue = Yii::$app->request->getCsrfToken();
    $cookies = Yii::$app->response->cookies;
    $cookies->add(new Cookie([
        'name' => '_csrf',
        'value' => $csrfValue,
        'expire' => $_SERVER['REQUEST_TIME'] + 86400,
    ]));
    
    2 条回复
    回复于 2016-07-07 16:32 回复

    我加在了控制器里,但是我刷新页面的时候,浏览器上并没有生成cookie呢

    回复于 2016-07-07 16:50 回复

    怎么会?我测试了的呢,你把 name='_csrf'换个名字呢?或者没有引入Cookie,要 use yii\web\Cookie 哟;

您需要登录后才可以回答。登录 | 立即注册
小程府
经理

小程府 北京

注册时间:2016-03-23
最后登录:2021-02-09
在线时长:30小时31分
  • 粉丝13
  • 金钱255
  • 威望100
  • 积分1555

热门问题