博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Yii2 Unable to verify your data submission 错误-CSRF
阅读量:5907 次
发布时间:2019-06-19

本文共 901 字,大约阅读时间需要 3 分钟。

hot3.png

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

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

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

下面给出正确的表单写法

    
    
FormValidate    
        
            
            
            
            
request->csrfParam; ?>"                value="
request->getCsrfToken();?>">            

 

即在表单中添加一个 

name : 

\Yii::$app->request->csrfParam;

 

value:

\Yii::$app->request->getCsrfToken();

 

的input hidden元素即可

输出 request 组件其实就能看到一个公共的成员属性  

public $csrfParam = '_csrf';

 

当然你直接写也可以

 

转载于:https://my.oschina.net/sallency/blog/612707

你可能感兴趣的文章
linux下uboot kernel操作cpu寄存器
查看>>
(转)PaperWeekly 第二十二期---Image Caption任务综述
查看>>
raspi-config Expand root partition to fill SD card 原理
查看>>
maven generating project in batch mode hang
查看>>
Excel与XML相互转换 - C# 简单实现方案
查看>>
远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
查看>>
基础二:javascript面向对象、创建对象、原型和继承总结(下)
查看>>
360. Sort Transformed Array
查看>>
docker使用流程
查看>>
一次解决OOM的经历
查看>>
JavaScript闭包
查看>>
樹莓派初始化安裝配置筆記
查看>>
TouchID本地身份验证
查看>>
android:launchMode小分析
查看>>
大转变,苹果或于明年推出使用 ARM 芯片的 Mac
查看>>
Docker 容器与主机时间同步
查看>>
爬虫基础-http请求的基础知识
查看>>
第十六章:数据绑定(三)
查看>>
antiX 17.4 发布,轻量级 Linux 发行版
查看>>
Java高并发秒杀Api-web 层
查看>>