思路:验证接口时间,验证接口加密
方法:
验证时间忽略,计算当前时间与参数即可。
接口加密,所有参数按照a-z排序,ksort排序,
去掉所有值空的参数。
再次拼接成字符串,添加一个盐,md5加密即可。
linux命令中输入路径带参数 & 时,可以加引号处理。否则会不解析参数
//验证时间
if(time()-$_REQUEST['timestamp']>30){
JSOND('-1','overtime');
}
//验证sign
$arr = V('r');
$sign = $arr['sign'];
unset($arr['m']);
unset($arr['sign']);
ksort($arr);
$str = '';
foreach($arr as $k=>$v){
if($v==''){
unset($arr[$k]);
}
}
foreach($arr as $k=>$v){
$str .= $k.'='.$v.'&';
}
$str = substr($str,0,-1)."h#y@lj^&($)";
if(md5($str)!=$sign){
JSOND('-1',$str.'|'.md5($str));
}