Thinkphp3.2 表单令牌
来源:互联网 发布:july七月算法 编辑:程序博客网 时间:2024/05/19 21:44
项目中一直想添加表单令牌验证,今天又时间研究了一下
首先是表单令牌的神奇之处:
之前只知道表单令牌是防止表单重复提交的,写的测试也测试不出来效果,今天先使用了一下表单令牌,发现表单提交以后保存到数据库,然后点击浏览器的后退,回到之前的表单页面,这时候不刷新页面然后修改一下数据点击提交发现时保存不到数据库的。
然后是把表单令牌的配置删除,使用普通的表单提交,这时候结果是提交以后数据保存到数据库,点击后退在提交还是会保存到数据库。即使数据一样。
因为写的例子比较简单,只测试除了这个问题。
接下来是thinkPHP3.2使用表单令牌:
首先在项目的Common的config文件夹下新建文件tags.php,在该文件中添加配置:
<?php
return array(
'view_filter'=>array('Behavior\TokenBuildBehavior'),
);
?>
然后在Common下的config.conf添加如下配置:
'TOKEN_ON' => true, // 是否开启令牌验证 默认关闭
'TOKEN_NAME' => '__hash__', // 令牌验证的表单隐藏字段名称,默认为__hash__
'TOKEN_TYPE' => 'md5', //令牌哈希验证规则 默认为MD5
'TOKEN_RESET' => true, //令牌验证出错后是否重置令牌 默认为true
到这里再刷新页面就会发现form表单的结束符前的多了一个隐藏的元素name="__hash__"和value="" 这两个属性值,说明表单令牌配置成功。
最后在提交方法中,如果没有使用create方法创建数据的话,则需要手动进行表单令牌验证:
$user = M("User");
// 手动进行令牌验证
if (!$user->autoCheckToken($_POST)){
// 令牌验证错误
}else{
$data['u_account'] = I('post.userName');
$user->add($data);
}
以上,今天的收获
- Thinkphp3.2 表单令牌
- 表单令牌
- PHP表单令牌设计
- ThinkPHP表单令牌
- thinkphp token表单令牌
- thinkphp 表单令牌使用
- thinkPHP框架表单令牌
- thinkphp 表单令牌错误解决方法,去掉部分表单令牌验证
- 令牌验证,表单提交问题
- ThinkPHP表单令牌验证功能
- 表单 对数据库字段自动加密解密表单提交(THINKPHP3.2)
- Token(令牌) 机制(表单重复提交)
- thinkphp表单令牌错误的解决方法
- thinkphp表单令牌错误的解决方法
- YII实现ThinkPHP的表单令牌
- Struts2 令牌机制防止 表单重复提交
- ThinkPHP下表单令牌错误分析
- Java 令牌机制 防止表单重复提交
- ios一些宏代码
- 定义与声明的区分
- 好用的aapt小工具
- linux sqilte3基本操作
- xcode 基本操作
- Thinkphp3.2 表单令牌
- sd卡文件操作
- 微服务(Microservice)架构快速指南
- 设计模式的分类和种类及其适用情景
- 设置linux邮箱帐号
- 转 匈牙利命名法的辩思
- log4j 指导
- 如何检测局网内哪些ip被占用
- 无线通信与云智能技术结合的ISE智能家居套件