随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

访问控制与鉴权设计

一.访问控制
为了保证用户不会通过系统发起过多访问导致影响正常用户的体验,每一个API接口都有一定的访问频率限制。
访问频率主要基于用户来源IP和操作者用户名进行限制。当前的频率限制参数为:1000次/5分钟/接口/用户名(appkey)

二.调用参数

三.签名sign原理
调用API时需要对请求参数进行签名验证,服务器也会对该请求参数进行验证是否合法的。方法如下:
(1)根据参数名称(除签名和图片)将所有请求参数按照字母先后顺序排序:key + value .... key + value
例如:将foo=1,bar=2,baz=3 排序为bar=2,baz=3,foo=1,参数名和参数值链接后,得到拼装字符串bar2baz3foo1

(2)系统同时支持MD5加密方式
md5:将secret 拼接到参数字符串头加密后,再转化成大写,格式是:byte2hex(md5(secretkey1value1key2value2.))

操作步骤如下:
第一步:把参数按Key的字母顺序排序
第二步:把所有参数名和参数值串在一起
第三步:使用MD5加密
第四步:把二进制转化为大写的十六进制

四、案例
1. 设定一个密钥,比如key='2323dsfadfewrasa3434',该key只有发送方(如:APP、IOS、ANDROID)和接收方(如:服务器端)知道。
2. 发送方调用时,通过签名原理生成一个access_key。
3. 接收方调用时,同样通过签名原理生成一个access_key2。
4. 比较access_key 和access_key2 内容是否一样。一样则允许操作,不一样,报错返回或者加入黑名单

 

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

posted on   Ruthless  阅读(3107)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
历史上的今天:
2011-10-31 J2EE用监听器实现同一用户只能有一个在线
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示