首页 > 其他分享 >App开放接口API安全性—Token签名sign的设计与实现

App开放接口API安全性—Token签名sign的设计与实现

时间:2023-08-29 17:32:30浏览次数:49  
标签:请求 用户 url App token sign Token 签名


在app开放接口API的设计中,避免不了的就是安全性问题。

 

一、https协议

对于一些敏感的API接口,需要使用https协议。

https是在http超文本传输协议加入SSL层,它在网络间通信是加密的,所以需要加密证书。

 

二、签名设计

原理:用户登录后向服务器提供用户认证信息(如账户和密码),服务器认证完后给客户端返回一个Token令牌,用户再次获取信息时,带上此令牌,如果令牌正确,则返回数据。对于获取Token信息后,访问用户相关接口,客户端请求的url需要带上如下参数:

时间戳:timestamp

Token令牌:token

然后将所有用户请求的参数按照字母排序(包括timestamp,token),然后更具MD5加密(可以加点盐),全部大写,生成sign签名,这就是所说的url签名算法。然后登陆后每次调用用户信息时,带上sign,timestamp,token参数。

其最终的原理是减小明文的暴露次数;保证数据安全的访问。

 

具体实现如下:

1. 客户端向服务器端发送用户认证信息(用户名和密码),服务器端接收到请求后,验证用户信息是否正确。

如果正确:则返回一个唯一不重复的字符串(一般为UUID),然后在Redis(任意缓存服务器)中维护Token----Uid的用户信息关系,以便其他API对token的校验。

如果错误:则返回错误码。

 

2.服务器设计一个url请求拦截规则

(1)判断是否包含timestamp,token,sign参数,如果不含有返回错误码。

(2)判断服务器接到请求的时间和参数中的时间戳是否相差很长一段时间(时间自定义如半个小时),如果超过则说明该 url已经过期(如果url被盗,他改变了时间戳,但是会导致sign签名不相等)。

(3)判断token是否有效,根据请求过来的token,查询redis缓存中的uid,如果获取不到这说明该token已过期。

(4)根据用户请求的url参数,服务器端按照同样的规则生成sign签名,对比签名看是否相等,相等则放行。(自然url签名 也无法100%保证其安全,也可以通过公钥AES对数据和url加密,但这样无法确保公钥丢失,所以签名只是很大程度上保证安全)。

(5)此url拦截只需对获取身份认证的url放行(如登陆url),剩余所有的url都需拦截。

 

http://www.lai18.com/content/944366.html

 

标签:请求,用户,url,App,token,sign,Token,签名
From: https://blog.51cto.com/u_16240770/7278634

相关文章

  • iOS开发Swift-4-IBAction,group,音乐播放器-木琴App
    1.使用素材创建木琴App的UI。 2.连接IBAction。  其余按钮直接拖拽到play里边。 当鼠标置于1处时2处显示如图,表示成功。当用户按下任一按钮都会触发play中的内容。 3.将7个按钮的View中的Tag值分别调为1、2、3、4、5、6、7. 4.将音频文件拖入项目文件中。 Cr......
  • 广州app开发|上门维修app开发如何提高用户体验?
    在现在这个快节奏的生活中,遇到家具家电需要维修时常常让我们烦恼不已。上门维修app的出现简直为人们带来了全新的体验,维修问题轻松就得到解决。然而在开发上门维修app时,需要注意几个方面,其中用户体验是重点之一。接下来,广州名锐讯动将带大家一起来了解一下上门维修app开发如何提高......
  • 上门维修app开发需要注意哪些细节?
    上门维修app为人们带来了生活中各类维修问题的便捷,因此越来越受欢迎。而开发一款功能完善、用户体验良好的上门维修app,则需要注意一系列细节。接下来让广州名锐讯动告诉大家上门维修app开发需要注意哪些细节?1.用户界面设计:一个直观、简洁且易于操作的用户界面对于上门维修app非常......
  • 广州app开发|上门维修app开发如何降低成本?
    在这个互联网盛行的时代,上门维修为人们的生活提供了便利,越来越多用户选择使用上门维修app来处理生活上的一些维修服务。因此,开发一款上门维修app是非常有必要的。那么,站在企业的角度来说,上门维修app开发如何降低成本?下面广州名锐讯动将为大家提供一些建议。1. 精确定义功能范围:在......
  • Python+Flask接口实现简单的ToKen功能
    话不多说,上代码fromflaskimportrequest,jsonifyfromfunctoolsimportwrapsclassTokenRequired:@classmethoddeftoken_required(cls,f):@wraps(f)defdecorated_function(*args,**kwargs):#获取请求头部中的key字段......
  • IPQ4019 IPQ4029 IPQ6010|IIOT|5G and WiFi 6:Application in Business and Industry
    5GandWiFi6:Application inBusinessandIndustryIntroductionAstheworldhurtlestowardsaneraofunprecedenteddigitaltransformation,twotechnologiesstandattheforefront,poisedtoreshapethelandscapeofbusinessandindustry:5GandWiFi6.Th......
  • The Riordan Group and Applications笔记
    2022年的一本书,只有376页。证明直接去书里面找。目录1介绍1.1啥是RiordanArray1.2源起和研究动机1.3基础的应用练习参考2系数抽取和生成函数2.1形式幂级数2.2系数抽取2.3拉格朗日反演定理2.4生成函数练习参考3RiordanGroup3.1RiordanArray和RiordanGroup3.2一些特殊......
  • MacOS 搭建Appium自动化测试环境
    一、软件安装1.JDK安装1) JDK安装在Oacle官网下载JDK8,网页如下:https//www.oracle.com/java/technologies/downloads/#java8-mac2) 配置环境变量安装成功后,使用指令 /usr/libexec/java_home-V,可以查看Java8的安装目录。或使用whichjava查看可执行文件的路径,进入这个路径后再用......
  • 网神SecGate 3600防火墙obj_app_upfile任意文件上传漏洞
    漏洞简介网神SecGate3600防火墙obj_app_upfile接口存在任意文件上传漏洞,攻击者通过构造特殊请求包即可获取服务器权限影响范围网神SecGate3600防火墙漏洞复现fofa语法:fid="1Lh1LHi6yfkhiO83I59AYg=="登录页面如下:POC:POST/?g=obj_app_upfileHTTP/1.1Host:jg.zhon......
  • 如何通过PKCE拿到AccessToken?
    PKCE(ProofKeyforCodeExchange)是一种用于增强OAuth2.0授权流程安全性的技术,特别适用于公共客户端(如移动应用)的场景。它通过在授权请求中引入一个随机生成的CodeVerifier和一个对应的CodeChallenge,以及在交换令牌时验证这些值,从而增加了授权流程的安全性。以下是在OAuth2.0......