设计思想:以登陆接口为例
登陆安全接口设计
1.username = red_panda
2.password = 123456
3.时间戳 timestamp = 17988732
token = md5(api_md5(red_panda) + md5(123456) + md5(timestamp)_api);
service_token = md5(api_md5(red_panda) + md5(123456) + md5(timestamp)_api);
两个比较,如果不等。说明数据被篡改
问题:
1.防止大量访问 采用时间戳,time
2.防止修改数据 比对token
3.窃取信息 比如加密密码,自身加了md5,再接后缀pwd,再md5加密 md5(md5(123456)_pwd);
password = md5(md5(123456)_pwd)
代码如下:
1.共有common.php
<?php
namespace app\api\controller;
use think\Request;
use think\Controller;
class Common extends Controller
{
protected $request; //用来处理参数
protected function _initialize(){
parent::_initialize();
$this -> request = Request::instance();
// 判断传过来的时间戳是否超时
$this -> check_time($this->request->only(['time'