流媒体合租发车、拼车平台,支持Netflix、YouTube、Spotify、HBO、Appletv+、Disney、Prime Video等等平台

英文原文:https://blog.bytebytego.com/p/how-to-design-a-secture-web-api-access

译文微排版如下:

如何为你的网站设计安全的网络API访问?

当我们向用户开放网络API访问时,我们需要确保每个API调用都经过认证。这意味着用户必须是他们所声称的人。

两种常见的方式

在这篇文章中,我们探讨两种常见的方式。

1. 基于令牌的认证

2. HMAC(基于哈希的消息认证码)认证

工作原理

下图说明了它们如何工作

如何为你的网站设计一个安全的网络API访问

基于令牌的认证

第1步 – 用户在客户端输入密码,客户端将密码发送给认证服务器。

第2步–认证服务器对凭证进行认证,并生成一个有到期时间的令牌。

第3步和第4步–现在,客户端可以用HTTP头中的令牌发送请求,访问服务器资源。这种访问是有效的,直到令牌过期。

基于HMAC

这种机制通过使用哈希函数(SHA256或MD5)生成一个消息认证码(签名)。

步骤1和2 – 服务器生成两个密钥,一个是公共APP ID(公钥),另一个是API密钥(私钥)。

第3步 – 我们现在在客户端生成一个HMAC签名(hmac A)。这个签名是用图中列出的一组属性生成的。

第4步 – 客户端发送访问服务器资源的请求,HTTP头中含有hmac A。

第5步 – 服务器收到请求,其中包含请求数据和认证头。它从请求中提取必要的属性,并使用存储在服务器端的API密钥来生成一个签名(hmac B。)

步骤6和7 – 服务器比较hmac A(在客户端生成)和hmac B(在服务器端生成)。如果它们匹配,请求的资源将被返回给客户。

问题 – HMAC认证如何确保数据的完整性?为什么我们要在HMAC签名生成中包括 “请求时间戳”?

本文链接:https://www.ahhhhfs.com/25995/

创作猫:短视频创作神器、新手0粉也能变现

发表评论

您的电子邮箱地址不会被公开。