API权限设计总结 系统sign验证规则
API权限设计总结 系统sign验证规则
http://my.oschina.net/anziguoer/blog/624840
1. [文件] receive.php
<?php // 获取post的数组 $key = "c4ca4238a0b923820dcc509a6f75849b"; // $secret 是存储在数据库中, 可以根据传递过来的key在数据中的查询到secretZ12QAZ12 $secret = "28c8edde3d61a0411511d3b1866f0636"; $data = $_POST; verifySign($secret, $data); /** * 验证sign是否合法 * @param [type] $secret [description] * @param [type] $data [description] * @return [type] [description] */ function verifySign($secret, $data) { // 验证参数中是否有签名 if (!isset($data['sign']) || !$data['sign']) { echo '发送的数据签名不存在'; die(); } if (!isset($data['timestamp']) || !$data['timestamp']) { echo '发送的数据参数不合法'; die(); } // 验证请求, 10分钟失效 if (time() - $data['timestamp'] > 600) { echo '验证失效, 请重新发送请求'; die(); } $sign = $data['sign']; unset($data['sign']); ksort($data); $params = http_build_query($data); $sign2 = md5($params.$secret); if ($sign == $sign2) { die('验证通过'); }else{ die('请求不合法'); } } ?>
登录后复制
2. [文件] request.php
<?php $key = "c4ca4238a0b923820dcc509a6f75849b"; $secret = "28c8edde3d61a0411511d3b1866f0636"; $data = array( 'username' => 'anziguoer@sina.com', 'sex' => '男', 'age' => '12', 'addr' => '北京市海淀区' ); // 传递的参数中必须有 key, sign, timestamp $postData = array( "key" => $key, "timestamp" => time() ); $psotData = array_merge($postData, $data); $sign = getSign($secret, $psotData); $postData['sign'] = $sign; // 获取sign function getSign($secret, $data) { // 对数组的值按key排序 ksort($data); // 生成url的形式 $params = http_build_query($data); // 生成sign $sign = md5($params.$secret); return $sign; } $postData = array_merge($postData, $data); request($postData); /** * 发送服务器的数据 * @param [type] $postData [description] * @return [type] [description] */ function request($postData) { $curl = curl_init('http://host/receive.php'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); $info = curl_exec($curl); curl_close($curl); print_r($info); }
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
1 个月前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
1 个月前
By DDD
R.E.P.O.最佳图形设置
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
1 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)