文章目录

  • 【如何设计安全可靠的开放接口】系列
  • 前言
    • AppId的使用
    • AppId的生成
    • AppSecret生成
  • 总结

【如何设计安全可靠的开放接口】系列

1. 如何设计安全可靠的开放接口—之Token
2. 如何设计安全可靠的开放接口—之AppId、AppSecret
3. 如何设计安全可靠的开放接口—之签名(sign)
4. 如何设计安全可靠的开放接口【番外篇】—关于MD5应用的介绍
5. 如何设计安全可靠的开放接口—还有哪些安全保护措施
6. 如何设计安全可靠的开放接口—对请求参加密保护
7. 如何设计安全可靠的开放接口【番外篇】— 对称加密算法

前言

前面我们介绍过了token机制,它可以解决单点登陆、跨域等问题,避免每次都需要用户登陆,不过并不是每个对外开放的接口都是需要用户登陆的,如果是这样,那我们就要想其他的方式来对用户身份进行验证了,一般我们会使用AppId的方式,实际上你也可以认为它是一种token机制,只不过换一个名字而已。

AppId的使用

因为AppId实际上就是一个标识,所以一般只要能保证系统内全局唯一即可,不过,为了能够防止有人拿着别人的AppId来请求,所以通常AppId都会配对一个AppSecret,可以理解为AppId的密码,最终的接口请求内容会根据AppIdAppSecret并按照一定的规则来生成一套签名,当请求方带着签名值去请求提供方时,提供方就会验证这个签名,只有验证通过才会继续处理。

AppId的生成

正如前面所说,AppId生成只要保证全局唯一即可,所以这里就不过多介绍了。

AppSecret生成

AppSecret的生成也很简单,只要与AppId能关联起来保证唯一即可。

PS:AppSecret后续会用于生成Sign(签名),因此一定要注意AppSecret的保密性,并且不能在网络中进行传输。

appSecret生成代码示例


public class AppUtils {static Map<String, String> appMap = Maps.newConcurrentMap();public static void main(String[] args) throws NoSuchAlgorithmException {// 方式一演示buildSimpleAppSecret("abc");System.out.println(getAppSecret("abc"));}/*** 构建简单的appSecret,比如:使用UUID** @param appId*/public static void buildSimpleAppSecret(String appId) {appMap.put(appId, UUID.randomUUID().toString());}private static String getAppSecret(String appId) {return String.valueOf(appMap.get(appId));}
}

总结

AppIdAppSecret的生成都比较简单,总的来说只要保证唯一、且能够匹配的上即可,需要注意的就是AppSecret就像是密码一样,是需要保密的,接口请求方与接口提供方可以通过私信沟通的方式来约定AppIdAppSecret,当然做的比较好的是,接口提供方通过专门的工具让接口请求方自行生成AppSecret

另外, AppIdAppSecret必须要结合sign(签名)使用,否则就没有意义,下节我们就来介绍sign

如何设计安全可靠的开放接口---之AppId、AppSecret相关推荐

  1. 如何设计安全可靠的开放接口---之Token

    文章目录 [如何设计安全可靠的开放接口]系列 前言 一.Token机制 1. Token生成 2. Session存在的问题 3. JWT是如何解决Session存在的问题的 二.JWT中的数据结构 ...

  2. 如何设计安全可靠的开放接口---对请求参加密保护

    文章目录 [如何设计安全可靠的开放接口]系列 前言 AES加解密 代码实现 [如何设计安全可靠的开放接口]系列 1. 如何设计安全可靠的开放接口-之Token 2. 如何设计安全可靠的开放接口-之Ap ...

  3. 如何设计安全可靠的开放接口---之签名(sign)

    文章目录 [如何设计安全可靠的开放接口]系列 前言 一.前置知识 二.签名的作用 1. 数据防篡改 2. 身份防冒充 三.流程说明 前置准备 交互流程 接口请求方 接口提供方 完整代码补充 总结 [如 ...

  4. API 开放接口设计之 appId,appSecret,accessToken (同微信开发平台接口)

    前篇:如何设计开放 Api 以下链接来源于网络素材: 需要考虑点摘录一: https://blog.csdn.net/weixin_34414196/article/details/92105613 ...

  5. App开放接口api安全:Token签名sign的设计与实现

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 来源:cnblogs.com/whcghost/p/5657 ...

  6. python api接口 安全_App开放接口api安全性的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证, 那么这就需要用户提供一些信息,比如用户名密码等 ...

  7. 魔高一丈道高一尺,开放接口安全性设计

    2019独角兽企业重金招聘Python工程师标准>>> 乐猿社区,程序员的花果山 问题 在开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些 ...

  8. 开放接口/RESTful/Api服务的设计和安全方案详解

    一.总体思路 这个涉及到两个方面问题: 一个是接口访问认证问题,主要解决谁可以使用接口(用户登录验证.来路验证) 一个是数据数据传输安全,主要解决接口数据被监听(HTTPS安全传输.敏感内容加密.数字 ...

  9. 如何设计和搭建一个开放平台,提供开放接口?12张PPT给你答案

    如何设计和搭建一个开放平台,提供开放接口?12张PPT给你答案 (作者:dogstar) 1.未来趋势会如何? 随着互联网技术的发展,现在已经是到达了信息化爆炸的时代,并且各种技术层出不穷.比起十多年 ...

最新文章

  1. 关于 Python3 的编码
  2. .NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯
  3. python flask框架是什么_Flask框架是什么?带你安装运行第一个Flask程序
  4. (软件工程复习核心重点)第六章实现和测试-第五节:确认测试
  5. byteofpython中文gitbook_Gitbook快速简明教程
  6. unity 后台计时器实现
  7. cJSON解析和打包
  8. Jmeter接口测试工具安装
  9. ECharts 前端数据可视化
  10. 西门子证实将出售手机业务【ZZ】
  11. 解决Vue history模式下路由跳转时页面404问题
  12. RTL8188EUS驱动程序编译步骤
  13. PAT基础级-黄金段位样卷1
  14. poi导出excel无法打开文件
  15. python设置excel边框_python win32com excel边框格式
  16. 记一次 k8s 集群单点故障引发的血案
  17. QQ空间JS代码原理
  18. MYSQL5.7设置账号密码复杂度、密码有效期、账号锁定等策略
  19. JavaScript video标签使用
  20. 通过修改rom包永久获取root权限和所有应用调试功能ro.debuggable

热门文章

  1. 分时技术用户可以独占计算机资源,华南理工网络教育操作系统随堂练习
  2. Linux文件读取操作:read函数的使用
  3. 电池续航智能穿戴设备突破瓶颈
  4. 计算机模拟虚拟筛选操作流程
  5. 关于MODIS数据说明及简单处理
  6. 亚信科技AntDB数据库荣获2022年度技术卓越奖
  7. 大数据分析工程师入门15-数据收集
  8. ​LaTex2023 软件下载+TeXstudio编辑器最新版+保姆级安装教程
  9. 推荐一个好用的PDF阅读器
  10. 教育邮箱申请jetbrains产品,免费获得AppCode、DataSpell、dotMemory、GoLand、IntelliJ IDEA、PhpStorm、PyCharm专业版