当前位置:首页 > 科技  > 软件

如何设计安全的 API 调用?

来源: 责编: 时间:2023-11-30 17:31:45 433观看
导读如何为网站设计安全的 API 访问?我们在设计一个网站或平台的时候,经常需要向用户开放 API 访问。这样用户就可以程序化地调用一些功能,举几个例子:交易所开放 API 让用户可以进行低时延的程序化交易,微信公众号平台开放 AP

如何为网站设计安全的 API 访问?wCf28资讯网——每日最新资讯28at.com

我们在设计一个网站或平台的时候,经常需要向用户开放 API 访问。这样用户就可以程序化地调用一些功能,举几个例子:wCf28资讯网——每日最新资讯28at.com

  1. 交易所开放 API 让用户可以进行低时延的程序化交易,
  2. 微信公众号平台开放 API 让三方工具进行运营管理工作,
  3. Stripe 开放 API 让商家和其他平台能很好地集成支付功能。

当我们向用户开放 API 访问时,我们需要确保每次 API 调用都经过鉴权。这意味着我们需要确认用户是他们所声称的身份。wCf28资讯网——每日最新资讯28at.com

我们一般使用两种常见的方法来进行鉴权:wCf28资讯网——每日最新资讯28at.com

  1. 基于令牌的身份验证
  2. HMAC(基于哈希的消息验证码)验证

下图说明了它们的工作原理。wCf28资讯网——每日最新资讯28at.com

图片wCf28资讯网——每日最新资讯28at.com

01 基于令牌

第 1 步

用户在客户端输入密码,然后客户端将密码发送到鉴权服务器。wCf28资讯网——每日最新资讯28at.com

第 2 步

鉴权服务器验证密码并生成一个有有效期的令牌。wCf28资讯网——每日最新资讯28at.com

第 3 步和第 4 步

现在,客户端可以发送请求,使用 HTTP 头中带有的令牌访问服务器资源。这种访问在令牌过期前一直有效。wCf28资讯网——每日最新资讯28at.com

02 基于 HMAC

这种机制通过使用哈希函数(SHA256 或 MD5)生成消息验证码(签名)。wCf28资讯网——每日最新资讯28at.com

第 1 步和第 2 步

服务器生成两个密钥,一个是公共 APP ID(公钥),另一个是 API Key(私钥)。wCf28资讯网——每日最新资讯28at.com

第 3 步

现在我们在客户端生成一个 HMAC 签名(hmac A)。该签名是根据图中列出的一组字段生成的。注意这里会加入请求的时间戳,这样一个 HMAC 签名是有有效期的,不会一直有效。wCf28资讯网——每日最新资讯28at.com

第 4 步

客户端发送请求来访问服务器资源,HTTP 头中包含 hmac A。wCf28资讯网——每日最新资讯28at.com

第 5 步

服务器收到包含请求数据和鉴权标头的请求。它从请求中提取必要的字段,并使用存储在服务器端的 API Key 生成签名(hmac B)。wCf28资讯网——每日最新资讯28at.com

第 6 步和第 7 步

服务器会比较 hmac A(在客户端生成)和 hmac B(在服务器端生成)。如果两者匹配,请求的资源将返回给客户端。wCf28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-35585-0.html如何设计安全的 API 调用?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 埋点数据可视化的探索与实践

下一篇: 知道这些正则表达式,能让你少写1000行代码

标签:
  • 热门焦点
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    疫情带来了网课,网课盘活了安卓平板,安卓平板市场虽然中途停滞了几年,但好的一点就是停滞的这几年行业又有了新的发展方向,例如超窄边框、高刷新率、多摄镜头组合等,这就让安卓
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 从零到英雄:高并发与性能优化的神奇之旅

    作者 | 波哥审校 | 重楼作为公司的架构师或者程序员,你是否曾经为公司的系统在面对高并发和性能瓶颈时感到手足无措或者焦头烂额呢?笔者在出道那会为此是吃尽了苦头的,不过也得
  • 腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之“想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!”曾凭借直播腾讯旗下代理格斗游戏《DNF》一
  • 自律,给不了Keep自由!

    来源 | 互联网品牌官作者 | 李大为编排 | 又耳 审核 | 谷晓辉自律能不能给用户自由暂时不好说,但大概率不能给Keep自由。近日,全球最大的在线健身平台Keep正式登陆港交所,努力
Top