从前端到后端签名api调用

问题描述 投票:1回答:1

我正在为前端实现一种使用秘密密钥与后端进行通信的安全方式。 后端是一项敏感服务(移动银行)。

首先,我想到了JWT,但是基于令牌的方法有两个缺点:

a)前端必须获取令牌,这意味着它必须向后端发送一些身份验证数据-如果前端可以做到这一点,那么任何人都可以做到这一点。

b)即使有某种安全的方式获取令牌,任何人都可以启动Chrome开发工具并在令牌未过期的情况下使用它。

因此,另一种方法是使用密钥对来自前端的每个请求进行签名。 已知该密钥在后端和前端,并且前端被捆绑并丑化以保持密钥秘密。 我们将请求URL及其有效负载连接起来,用密钥对其进行加密,然后将结果哈希发送到标头中。 后端获取请求,进行相同的加密并比较标头; 如果它们相等,则发出请求。

这使我想到三个问题:

  • 这真的意味着即使请求被监听,也无法重现,除非url + payload相同。 有什么我想念的吗?

  • 是否有实现此方法的JS库? (或者也可能是后端的东西-我正在使用Django)

  • 有没有更好的方法?

javascript django security jwt
1个回答
2
投票

根据需要捆绑,如果授权请求的安全密钥在js内,我将能够取消丑化(美化)并获取它。 使用SSL加密连接,仅使用JWT;)

http://jsbeautifier.org/

无论如何,您都将不得不授权用户,因此这意味着发送私人数据以建立“会话”。 使其成为用户名,电子邮件,密码或某些“秘密”令牌。

© www.soinside.com 2019 - 2024. All rights reserved.