当前位置:   article > 正文

开放式API安全防护的七大原则_开放性api

开放性api

我是架构精进之路,点击上方“关注”,坚持每天为你分享技术干货,私信我回复“01”,送你一份程序员成长进阶大礼包。   

在我们日常工作程序开发过程中,难免会涉及与第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(即防窃取)?

API 是模块或者子系统之间交互的接口定义,优秀的系统架构离不开好良好的 API 设计,而一个设计不够完善的 API 则注定会导致系统的后续发展和维护非常困难。

下面我们就来讨论下常用的一些API设计的安全方法。

一、API服务为什么要签名?

首先要明确,接口服务需要解决的三个问题:

  • 请求是否合法:是否是我的信任方

  • 请求是否被篡改:是否被第三方劫持并篡改参数

  • 防止重复请求(防重放):是否重复请求

二、服务调用流程

1. 接口调用方(客户端)向接口提供方(服务器)申请接口调用账号,申请成功后,接口提供方会给接口调用方一个appId和一个key参数;

2. 客户端携带参数appId、timestamp、sign去调用服务器端的API token,其中sign=加密(appId + timestamp + key);

3. 客户端拿着api_token 去访问不需要登录就能访问的接口;

4. 当访问用户需要登录的接口时,客户端跳转到登录页面,通过用户名和密码调用登录接口,登录接口会返回一个usertoken, 客户端拿着usertoken 去访问需要登录才能访问的接口;

5. sign的作用是防止参数被篡改,客户端调用服务端时需要传递sign参数,服务器响应客户端时也可以返回一个sign用于客户端校验返回的值是否被非法篡改了。客户端传的sign和服务器端响应的sign算法可能会不同。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/416208
推荐阅读
相关标签
  

闽ICP备14008679号