api接口token验证怎么绕过,token进行接口验证

  api接口token验证怎么绕过,token进行接口验证

  界面功能概述:

  1.因为是非开放的,所以所有接口都是封闭的,只对公司内部的产品有效;

  2.因为是非开放的,OAuth协议不起作用,因为中间用户没有授权过程;

  3.有些界面需要用户登录才能访问;

  4.有些界面无需用户登录即可访问;

  PHP令牌(令牌)

  鉴于上述特征,移动终端和服务器终端之间的通信需要两个密钥,即两个令牌。

  第一个令牌用于接口(API _ token);

  第二个令牌是给用户的(user _ token);

  说第一个令牌(api_token)

  其职责是保持接口访问的隐蔽性和有效性,确保接口只能被家庭成员使用。如何才能做到?参考思路如下:

  根据服务器和客户端拥有的公共属性生成一个随机字符串。客户端生成这个字符串,服务器也按照同样的算法生成一个字符串来校验客户端的字符串。

  现在界面基本都是mvc模式,网址基本都是restful风格。URL的一般格式如下:

  http://blog.snsgou.com/模块名/控制器名/方法名?参数名1=参数值1参数名2=参数值2参数名3=参数值3

  接口令牌生成规则如下:

  Api_token=md5(模块名控制器名方法名 2013-12-18 加密密钥)=770 fed 4 ca 2 a Abd 20 AE 9 a5d 774711 de 2

  在那里

  1.“2013年12月18日”是今天的时间,

  2.“加密密钥”是一个私有加密密钥。手机需要在服务器注册一个“界面用户”账号后,系统会分配一个账号和密码。数据表设计如下:

  字段名称字段类型注释

  Client_ID varchar(20)客户端ID

  Client_secret varchar(20)客户端(加密)密钥

  界面验证,PHP实现过程如下:

  界面验证,PHP实现流程如下:Php //1,获取GET参数值$ module=$ _ GET[ mod ];$ controller=$ _ GET[ CTL ]$ action=$ _ GET[ act ];$ client _ id=$ _ GET[ client _ id ];$ API _ token=$ _ GET[ API _ token ];//2.根据客户端发来的client_id,查询数据库得到对应的client _ secret $ client _ secret=getclientsecretbyid($ client _ ID);//3.服务器将重新生成API _ token $ API _ token _ server=MD5($ module。$控制器。$ action.date (y-m-d ,time())。$ client _ secret);//4.用服务器生成的api_token检查客户端发送的api_token。如果不相等,则意味着验证失败,如果(api _ token!=$ API _ token _ server){ exit( access deny );//拒绝访问}//5。验证后,数据返回给客户端。

  说第二个令牌(user_token)

  其职责是保护用户的用户名和密码不被多次提交,防止密码泄露。

  如果界面需要用户登录,其访问流程如下:

  1.用户提交“用户名”和“密码”登录(如果条件允许,最好走https);在这一步);

  2.成功登录后,服务器返回一个user_token,生成规则如下:

  User_token=md5(用户的uid Unix时间戳)=etyeo fgkk 4c a2 a Abd 20 AE 9 a5 DD 77471 FGF

  使用服务器数据表来维护user_token的状态。表格设计如下:

  字段名称字段类型注释

  User_ID int用户ID

  User_token varchar(36)用户令牌

  Expire_time int到期时间(Unix时间戳)

  (注:只列出核心字段,其他可以展开!)

  服务器生成user_token后,返回给客户端(自己存储)。每当客户端请求一个接口时,如果该接口需要用户登录才能访问,它需要将user_id和user_token发送回服务器。服务器收到这两个参数后,需要执行以下步骤:

  1.检查api_token的有效性;

  2.删除过期的user_token表记录;

  3.根据user_id,user_token获取表记录。如果表记录不存在,会直接返回错误。如果记录确实存在,请转到下一步。

  4.更新user_token的到期时间(延时,以保证在其有效期内持续运行不会断开);

  5.返回接口数据;

  按如下方式使用界面:

  申请方式:邮寄

  帖子参数:标题=我是标题内容=我是内容

  返回数据:

  {

  Code=1,//1:成功0:失败

  消息=操作成功 //登录失败、无权访问

  data=[]

  }

  服务器端编程语言(Professional Hypertext Preprocessor的缩写)令牌(令牌)-相关链接http://www..net/article/13756.htmhttp://wenku.baidu.com/view/8f4d96ddfab069dc5022014f.html?重新查看

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: