Yii-Unable to verify your data submission 错误(CSRF)

Yii2 Unable to verify your data submission 错误

  Yii2 功能很是强大,组件化编程很高大上,全栈编程很容易,但我觉得日常的开发中还是有很大一部分人会去手写表单之类的,为了配合前端的工作,或者懒得再去学这套堪比一门新语言的组件语法……

  Yii2默认是对表单采取 CSRF 验证的,近些年 CSRF 也越来越被人们所在意,它比 XSS 更阴险更精明,有兴趣的可以百度下网络安全编程方面的相关知识,这里就不再累述了。

  如果是自己手写的表单,且没有关闭 Yii2 自身的 CSRF 验证的话,就会出现 “Unable to verify your data submission” 的错误提示,而网上千篇一律的都是教你如何关闭 CSRF 验证,我也是呵呵了,居心何在?安全编程要贯彻到底,如果你不想过几年被搞网络安全的挤下去么。

  有几篇教你如何使自己的表单符合 CSRF 验证,但都是 Yii1 版本的,组件的写法都与现在的 Yii2 大有不同。下面给出正确的表单写法:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>FormValidate</title>
</head>
<body>
    <div>
        <form method="post" action="">
            <input type="text" name="username">
            <input type="submit" value="submit">
            <!-- _csrf -->
            <input type="hidden"
                name="<?= \Yii::$app->request->csrfParam; ?>"
                value="<?= \Yii::$app->request->getCsrfToken();?>">
        </form>
    </div>
</body>
</html>

  即在表单中添加一个 隐藏的input标签,并调用Yii的CSRF生成器即可。
  输出 request 组件其实就能看到一个公共的成员属性:public $csrfParam = '_csrf';(当然你直接写也可以)

参考资料:
Yii2 Unable to verify your data submission 错误-CSRF - sallency

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值