用Snoopy类给THINKPHP框架的网站远程POST数据 令牌验证总是为真?
时间:2011-11-14
来源:互联网
PHP code
PHP code
PHP code
令牌验证失效? 请教大家是什么原因呢?
//SnoopyPOST数据方法 public function index() { $temp=new Snoopy(); $temp->fetch("http://sadasdad"); $userpass=array('user'=>'123','password'=>'456'); dump($userpass); $temp->submit("http://sadasdad/index.php/Index/login",$userpass); print_r($temp->results); $title="Snoopy GO!"; $this->display(); }
PHP code
//接受远程POST数据的代码块 public function login() { S('islogin',0); $Demo=D('User'); $temp=$Demo->create(); echo $Demo->autoCheckToken($_POST); dump($temp); if(($_POST["user"]=="123")&&($_POST["password"]=="456")) { S('islogin',1,300); } }
PHP code
//结果 array(2) { ["user"] => string(3) "123" ["password"] => string(3) "456" }//Snoopy类传送数据 1//验证为真 array(2) { ["user"] => string(3) "123" ["password"] => string(3) "456" }//User实例接收POST数据(成功)
令牌验证失效? 请教大家是什么原因呢?
作者: boldness123 发布时间: 2011-11-14
令牌验证?
作者: ci1699 发布时间: 2011-11-14
引用 1 楼 ci1699 的回复:
令牌验证?
令牌验证?
令牌验证
ThinkPHP新版内置了表单令牌验证功能,可以有效防止表单的远程提交等安全防护。
表单令牌验证相关的配置参数有:
'TOKEN_ON'=>true, // 是否开启令牌验证
'TOKEN_NAME'=>'__hash__', // 令牌验证的表单隐藏字段名称
'TOKEN_TYPE'=>'md5', //令牌哈希验证规则默认为MD5
如果开启表单令牌验证功能,系统会自动在带有表单的模板文件里面自动生成以TOKEN_NAME为名称的隐藏域,其值则是TOKEN_TYPE方式生成的哈希字符串,用于实现表单的自动令牌验证。
说明:每刷新一次页面都会重新生成一次隐藏域中的值
自动生成的隐藏域位于表单Form结束标志之前,如果希望自己控制隐藏域的位置,可以手动在表单页面添加{__TOKEN__} 标识,系统会在输出模板的时候自动替换。如果在开启表单令牌验证的情况下,个别表单不需要使用令牌验证功能,可以在表单页面添加{__NOTOKEN__},则系统会忽略当前表单的令牌验证。
如果页面中存在多个表单,建议添加{__TOKEN__}标识,并确保只有一个表单需要令牌验证。
模型类在创建数据对象的同时会自动进行表单令牌验证操作,如果你没有使用create方法创建数据对象的话,则需要手动调用模型的autoCheckToken方法进行表单令牌验证。如果返回false,则表示表单令牌验证错误。例如:
$User = M("User"); // 实例化User对象
// 手动进行令牌验证
if (!$User->autoCheckToken($_POST)){
// 令牌验证错误
}
作者: boldness123 发布时间: 2011-11-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28