php token使用与验证示例【测试可用】 原创
本文实例讲述了php token使用与验证。分享给大家供大家参考,具体如下:
一、token功能简述
PHP 使用token验证可有效的防止非法来源数据提交访问,增加数据操作的安全性
二、实现方法:
前台form表单:
<form action="do.php" method="POST"> <?php $module=mt_rand(100000,999999);?> <input type="text" name="sec_name" value=""/> <input type="hidden" name="module" value="<?php echo $module;?>"/> <input type="hidden" name="timestamp" value="<?php echo time();?>"/> <input type="hidden" name="token" value="<?php echo md5($module.'#$@%!^*'.time());?>"/> </form>
后台do.php的token验证部分:
<?php $module = $_POST['module']; $timestamp = $_POST['timestamp']; $token = md5($module.'#$@%!^*'.$timestamp); if($token != $_POST['token']){ echo('非法数据来源'); exit(); } $sec_name=$_POST['sec_name']; //PHP数据处理..... ?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php安全过滤技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
PHP令牌 Token改进版
正是由于使用了 base64 ,所以在把这个令牌通过 GET方法发送的时候,出现了问题. 比如:http://test/test.php?a=1+2 你用 $_GET["a"] 取得是:1 2 ,即那个加号没有了.一开始我用 urlencode 对其进行转换,但是总有那么一两的结果是意料外的. 后来想想 base64 的字符就限定于: [A-Za-z0-9\+\/=] 这么多,加号出问题,我就把加号换成不出问题的符号,下划线是最好的选择.下面是修改后的代码: GEncrypt.inc.
-
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
相信很多人会跟我一样,token验证之后,发送消息给订阅号,没有消息返回. 以下,说一下我辛苦调试得到的解决办法: 首先,token验证: 自己写的token一直验证失败,找了好久,没有发现bug.实在没办法,就用了官方的示例代码.并且通过示例代码调试,发现了一个让我吐血的bug(也不算bug): token验证貌似要求字符编码格式!!!! 官方的示例代码,直接上传到服务器,token直接过! 把官方示例代码改为UTF-8格式,再上传覆盖,token失败!失败!失败! 后来,把自己写的修改为AN
-
利用php-cli和任务计划实现刷新token功能的方法
1.业务需求 需要实现这样一个功能:在第三方授权的认证当中,在用户首次登录授权我们会得到一个access_token,有效期为25小时,还会得到一个refresh_token,有效期为30天. 我们只要保存好这个refresh_token,在30天内我们都可以用这个refresh_token去请求一个api,他会返回一个新的access_token.这样我们只需要让用户授权一次,我们就可以获得长达30天的一个授权期限. 这里可以分为几个点: <1>这个应该是要定期执行的一个任务. 25小时才会
-
PHP使用token防止表单重复提交的方法
本文实例讲述了PHP使用token防止表单重复提交的方法.分享给大家供大家参考,具体如下: <?php /* * PHP使用token防止表单重复提交 * 此处理方法纯粹是为了给初学者参考 */ session_start(); function set_token() { $_SESSION['token'] = md5(microtime(true)); } function valid_token() { $return = $_REQUEST['token'] === $_SESSION
-
PHP Token(令牌)设计
如何达到目的: 怎样避免重复提交? 在SESSION里要存一个数组,这个数组存放以经成功提交的token.在后台处理时,先判断这个token是否在这个数组里,如果存在,说明是重复提交. 如何检查来路? 可选项,这个token在生成的时候,加入了当前的session_id.如果别人copy你的html(token一迸copy),在提交时,理论上token里包含的session_id不等于当前session_id,就可以判断这次提交是外部提交. 如何匹配要执行的动作? 在token的时候,要把这
-
验证token、回复图文\文本、推送消息的实用微信类php代码
本文实例为大家分享了用于验证token,回复图文.文本,向用户推送消息等功能的微信类,具体代码如下 <?php class Wechat{ private $data = array(); public function __construct($token){ $this -> auth($token, $wxuser) || exit; if(IS_GET){ echo($_GET['echostr']); exit; }else{ $xml = file_get_contents(&qu
-
基于thinkPHP3.2实现微信接入及查询token值的方法
本文实例讲述了基于thinkPHP3.2实现微信接入及查询token值的方法.分享给大家供大家参考,具体如下: 1.在con.fig文件里面配置TOKEN,APPID,APPSECRET值 2.控制器WeixinController代码: <?php /** * 微信父类控制器 * @author Songle * */ namespace Weixin\Controller; use Think\Controller; class WeixinController extends Contro
-
php版微信开发Token验证失败或请求URL超时问题的解决方法
本文实例分析了php版微信开发Token验证失败或请求URL超时问题的解决方法.分享给大家供大家参考,具体如下: 微信开发最近要用到的一个功能,其实就是一个非常的简单的用户输入然后自动搜索数据库并进行一个数据回复了,这个与官方没多大的问题,但小编就微信Token验证失败折腾了许多,下面解决了给各位分析一下. 1.Token验证失败 这个就是要检查配置文件了,最基本的就是 define("TOKEN", "weixin"); weixin 是你的微信开发后台的ID
-
PHP定时任务获取微信access_token的方法
本文实例讲述了PHP定时任务获取微信access_token的方法.分享给大家供大家参考,具体如下: 微信access_token在开发时会变的好像是几分种不一样了,这里我们来介绍关于PHP定时任务获取微信access_token的方法. 最近开发微信公众平台,公众号调用各接口时都需使用access_token,access_token是公众号的全局唯一接口调用凭据,开发时需要进行妥善保存. access_token有效期为7200秒 ,重复获取将导致上次获取的access_token失效. 由
-
php表单加入Token防止重复提交的方法分析
本文实例讲述了php表单加入Token防止重复提交的方法.分享给大家供大家参考,具体如下: Token浅谈 Token,就是令牌,最大的特点就是随机性,不可预测.一般黑客或软件无法猜测出来. 那么,Token有什么作用?又是什么原理呢? Token一般用在两个地方--防止表单重复提交.anti csrf攻击(跨站点请求伪造). 两者在原理上都是通过session token来实现的.当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发
随机推荐
- FCKeditor添加自定义按钮的方法
- javascript 24小时弹出一次的代码(利用cookies)
- 批处理制作照片整理器第1/2页
- Java Web应用程序实现基础的文件下载功能的实例讲解
- PHP函数microtime()用法与说明
- php mysql like 实现多关键词搜索的方法
- 基于MySQL游标的具体使用详解
- PHP实现多图上传(结合uploadify插件)思路分析
- php+jQuery+Ajax实现点赞效果的方法(附源码下载)
- 在网页中控制wmplayer播放器
- 详解vue 配合vue-resource调用接口获取数据
- Python使用爬虫猜密码
- 在 SQLSERVER 中快速有条件删除海量数据
- 巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行
- MySQL多层级结构-树搜索介绍
- MySQL 删除数据库中重复数据方法小结
- 读jQuery之十二 删除事件核心方法
- PHP中strtotime函数使用方法分享
- php header示例代码(推荐)
- Spring boot项目打包成jar运行的二种方法