接口安全处理
来源:互联网 发布:angularjs2 seo问题 编辑:程序博客网 时间:2024/06/07 04:59
<?php
/**
* SignCheck : session key 对称式 加密校验.
* 注:公私钥模式可以避免私钥被窃取.
*/
// Client:
$time = time();
$url = "name=dudj&password=123456&telephone=130****8873&time={$time}";
// Client和Server通用私钥.
$uuid = 'b9514c52-5363-4364-b73f-a2ec93ae6b34';
function getSign($url, $uuid, $encode = true)
{
parse_str( $url, $arr );
if (! $encode ) {
unset($arr['sign']);
}
// 1. 参数按首字母排序
ksort($arr, SORT_REGULAR);
$str = http_build_query($arr);
// 2. 参数字符串拼接私钥(TODO自定义)
$new_str = $str . $uuid;
// 3. 生成新sign(TODO自定义)
$sign = openssl_encrypt($new_str, 'AES-128-CBC', $uuid, OPENSSL_RAW_DATA, substr($uuid, 0, 16));
return md5($sign);
}
// 4. 参数拼接sign进行请求
$client_sign = getSign($url, $uuid);
$request_url = $url . "&sign={$client_sign}";
// Server:
// 去除sign重新校验,并检查time有效期
$server_sign = getSign($request_url, $uuid, false);
if(($client_sign == $server_sign) && ((time()-$time)<5)){
echo "{$server_sign} 有效,且在有效期内.\n";
//做接口处理
parse_str( $url, $arr );
var_dump($arr);
}else{
return "非法请求.\n";
}
/**
* SignCheck : session key 对称式 加密校验.
* 注:公私钥模式可以避免私钥被窃取.
*/
// Client:
$time = time();
$url = "name=dudj&password=123456&telephone=130****8873&time={$time}";
// Client和Server通用私钥.
$uuid = 'b9514c52-5363-4364-b73f-a2ec93ae6b34';
function getSign($url, $uuid, $encode = true)
{
parse_str( $url, $arr );
if (! $encode ) {
unset($arr['sign']);
}
// 1. 参数按首字母排序
ksort($arr, SORT_REGULAR);
$str = http_build_query($arr);
// 2. 参数字符串拼接私钥(TODO自定义)
$new_str = $str . $uuid;
// 3. 生成新sign(TODO自定义)
$sign = openssl_encrypt($new_str, 'AES-128-CBC', $uuid, OPENSSL_RAW_DATA, substr($uuid, 0, 16));
return md5($sign);
}
// 4. 参数拼接sign进行请求
$client_sign = getSign($url, $uuid);
$request_url = $url . "&sign={$client_sign}";
// Server:
// 去除sign重新校验,并检查time有效期
$server_sign = getSign($request_url, $uuid, false);
if(($client_sign == $server_sign) && ((time()-$time)<5)){
echo "{$server_sign} 有效,且在有效期内.\n";
//做接口处理
parse_str( $url, $arr );
var_dump($arr);
}else{
return "非法请求.\n";
}
阅读全文
0 0
- 接口安全处理
- 接口安全
- 不远复 秒杀系统:并发队列 接口设计 并发请求数据安全处理
- 如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)
- 安全接口 interface
- HTTP接口安全
- 接口安全之签名
- APP接口安全设计
- 接口安全--http数字签名
- APP接口安全设计
- API接口安全
- 关于接口安全
- api接口安全设计
- Android接口安全
- api接口安全
- 安全接口设计
- api接口安全
- 安全字符串处理函数
- c++11学习
- websphere服务一:访问端口修改
- Handler、Looper、Message、MessageQueue基础流程分析
- if
- c语言那些细节之a+1和&a+1的区别
- 接口安全处理
- Mac下面搭建PHP+Android+iOS开发环境
- CSS 强制性换行
- 性能优化
- NCURSES程序设计之魔数方阵
- Vuejs自己的构建工具
- ArrayList<Character>的删除问题
- windows内存体系结构
- Python之windows锁屏