一、数据表结构
user表结构如下:
id username password
二、view模板部分
/view/index.html页面如下:
  1
2
3
4
5
6 <form action="__URL__/edit" method="post">
 <input type="text" name="id" />
 <input type="text" name="username" />
 <input type="password" name="password" />
 <input type="submit" name="sub" value="提交" />
</form> 三、action部分:
/Controller/IndexController.class.php页面如下:
 
  1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19  
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller {     public function index(){             $this->display();                  exit();     }          public function addit(){     $User = M("User"); // 实例化User对象     // 手动进行令牌验证     if (!$User->autoCheckToken($_POST)){     dump('no');     }else{     dump('yes');     }              }      }
   
 
thinkphp配置令牌验证:    功能:可以有效防止表单的远程提交等安全防护。
   在生成的目录中找到common/conf/config.php中添加如下配置:
  1
2
3 'TOKEN_ON'   =>  true, //是否开启令牌验证
'TOKEN_NAME'  =>  'token',// 令牌验证的表单隐藏字段名称
'TOKEN_TYPE'  =>  'md5',//令牌验证哈希规则    在生成的目录中找到common/conf文件夹中添加tags.php并写入以下代码:
 
  1
2
3   <?php return array(      'view_filter' => array('Behavior\TokenBuildBehavior'), );
  自动令牌会向当前SESSION会话当中放上一个md5加密的字符串。并将这个字符串以隐藏域的形式插入到表单的form之前。这个字符串出现在两个地方,一个是在SESSION当中,另一个就是在表单当中。当你提交表单后,服务器第一件事就是对比这个SESSION信息,如果正确的话,准许表单提交,否则不允许提交。
查看index.html的的源代码会看到在表单form的结束标志之前会多了一个自动生成的隐藏域
  1 <input type="hidden" name="token" value="eef419c3d14c9c93caa7627eedaba4a5" /> 验证令牌是否生效:
  1
2
3 if (!$User->autoCheckToken($_POST)){
// 令牌验证错误
}
												

ThinkPHP自动令牌验证(附实例)的更多相关文章

  1. ThinkPHP表单令牌验证功能详细介绍

    注:TP版本为3.1.3 在ThinkPHP框架下,两次提交同一个表单,比如提交信息后在浏览器点击后退退回上次的页面,重新点击提交按钮,就会提示“表单令牌错误”的信息. ThinkPHP新版内置了表单 ...

  2. ThinkPHP 自动验证实例

    //array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),protected $_validate = array( ); ThinkPHP 自动验证定义的附加规则如下: r ...

  3. ThinkPHP 自动验证与自动填充无效可能的原因(转)

    自动验证与自动填充是在使用ThinkPHP时经常用到的功能,但偶尔会遇到自动验证与自动填充无效的情况,本文就ThinkPHP 自动验证与自动填充无效可能的原因做一些分析. create() Think ...

  4. <转>thinkphp自动验证无效的问题

    新手入门thinkphp,试用自动验证表单输入数据功能,却发现怎么都不能调用自动验证,自动验证无效,原因竟是一个小细节的疏忽,学习一定要细心啊! Action方法: IndexAction下的adds ...

  5. ThinkPHP 自动验证与自动填充无效可能的原因

    原文链接:http://www.5idev.com/p-thinkphp_validate_auto_Invalid.shtml 自动验证与自动填充是在使用ThinkPHP时经常用到的功能,但偶尔会遇 ...

  6. ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)

    原文:ThinkPHP 自动创建数据.自动验证.自动完成详细例子介绍(十九) 1:自动创建数据 //$name=$_POST['name']; //$password=$_POST['password ...

  7. thinkphp自动验证分析

    thinkphp有一个自动验证的方法验证规则如下 array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件 ...

  8. thinkphp自动验证无效的问题

    新手入门thinkphp,试用自动验证表单输入数据功能,却发现怎么都不能调用自动验证,自动验证无效,原因竟是一个小细节的疏忽,学习一定要细心啊! Action方法: IndexAction下的adds ...

  9. ASP.NET Core Razor页面禁用防伪令牌验证

    在这篇短文中,我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证. Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架,用于构建动态的.数据驱动的网站: ...

随机推荐

  1. 【排序】希尔排序,C++实现

    原创博文,转载请注明出处! 本文代码的github地址 # 基本思路       希尔排序是”直接插入排序“的改进版,也称为“缩小增量排序”.基本原理:先将待排序的数组元素分成多个序列,然后对每个子序 ...

  2. JAXP使用Stax API时格式化输出XML 2

    之前实现的一个版本:http://www.cnblogs.com/lyhtbc/p/jaxp-pretty-format-validate-validation-stax-stax2.html 这个版 ...

  3. c# 图片转流 流转文件

    //----引入必要的命名空间 using System.IO; using System.Drawing.Imaging; //----代码部分----// private byte[] photo ...

  4. atom的设置

    1.隐藏Keybinding Resolver Packages->Keybinding Resolver->Toggle.

  5. PHP 数组转json_encode,单个数组下标为了0时不对??

    在 php 数组转json时,假如 有一个数组下标是顺序的,他json_encode后会直接变成一个简版二维json, $arr = ['1'=>1,'2'=>2]; echo (json ...

  6. js中confirm揭示三个按钮“是”“否”“取消”

    js中confirm提示三个按钮“是”“否”“取消” 重载DOM中confirm window.confirm = function(str) {   str=str.replace(/\'/g, & ...

  7. 【sqlite】VS2013中C#读取SQLite数据

    从“火车采集器”(免费版)中获取的网页数据,本地只能自动保存为SQLite数据,(在工具-数据转换中切换).收费版还可以用MySql.SqlServer 今天就记录一下C#读取Sqlite数据 创建一 ...

  8. 顺丰品牌研究http://www.kiees.cn/sf/express/brand.htm

    顺丰控股股份有限公司,顺丰速运SF,始于1993年,国内速递行业中民族品牌的佼佼者,以其速度快/安全性能高蜚声业界,现已开通海外快递服务,2017年2月完成借壳上市 1993年,顺丰诞生于广东顺德.自 ...

  9. 谷歌被墙后,能够搜索的ip地址

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/langresser/article/details/32339707 http://209.116. ...

  10. win10下启动zkui

    zkui是一个开源的zookeeper可视化工具,现在看下我们怎么启动这个工具.首先下载源码(我把它放在E:\workspace): git clone https://github.com/Deem ...