yii2框架-yii2局部关闭(开启)csrf的验证 ------- 400错误

gongzhiyang 6月前 331

最近正在用yii2写新项目。遇到了一些问题和大家分享一下。在我做登录操作是出现400错误。当时很纳闷,明明路径都是对的。怎么会出现这个问题呢!于是乎goole了一下。问题是解决了。但是感觉不详细。于是乎想整理一下。

前提是我没有用ActiveForm表单组件,废话少说,进入正题。

csrf 概念
我怕说的不好,但是我看到一篇文章讲的不错。链接如下:

csrf概念

我个人的理解就是一个服务器token,与cookie session 进行对比,保证数据的合法性和防御CSRF攻击。

如果你不用ActiveForm表单组件,在添加 更新 删除等操作就会出现400错误。我们怎么解决的。

一. 局部关不csrf验证

       public function init(){
    		$this->enableCsrfValidation = false;
    	}

二. 表单中加入csrff

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

这个是重点, 不能这样 name="_csrf" ,否则无效。必须加入后缀。后缀也是规则的。

  1. 查看name配置 可以看到是_csrf-backend
    在这里插入图片描述

  2. 编辑表单

Array ( [_csrf-app] => kQvzekYEWUj2tn2JbOdbzwoy8vrkgNZcJS4EXEWaPTXYRppPCm4yL7zxPMApiGKtfXqEz575-xZ2eW1tMvtFeQ== [login_name] => weixi [login_password] => 123456 )

有什么不足之处,请指正。谢谢。

最新回复 (1)
  • 飛(fìe) 6月前
    2
    学习了
    • 都市菜鸟网
      3
        立即登录 立即注册 
返回
发新帖