验证流程
//判断stime参数是否有效 if( $now - $stime > 60){ die("请求超时"); } //判断nonce参数是否在“集合”已存在 if( in_array($nonce,$nonceArray) ){ die("请求仅一次有效"); } //验证数字签名 if ( $sign != md5($uid.$token.$stime.$nonce) ){ die("数字签名验证失败"); } /* if( $now - $nonceArray->lastModifyTime > 60 ){ $nonceArray = null; } $nonceArray.push($nonce); */ //处理随机数 $key = 'nonce'+$uid; if($redis->sismember($key,$nonce) === true){ die('拒绝重放攻击请求'); } if($redis->scard($key) > 90000){ $redis->del($key); } $redis->sadd($key,$nonce); //重放攻击检查完成
参考文章:
http://www.360doc.com/content/14/0116/16/834950_345740386.shtml
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php安全过滤技巧总结》、《PHP运算与运算符用法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。