2017-10-20 152 views
1

我在执行针对前端与使用密钥后端通信的安全方式。后端是敏感业务签署API从前端调用后端

首先,我想智威汤逊,但基于令牌的方法有两个缺点(手机银行):

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

二)即使获得令牌的一些安全的方式,任何人都可以启动Chrome浏览器开发工具,并使用它,而它没有过期。

所以另一种方法是从签署前端用密钥每个请求。关键是众所周知的后端和前端的前端捆绑并变丑,以保持钥匙的秘密。我们连接请求URL和它的有效载荷,用一个密钥对它们进行加密,并将结果散列发送到一个头部。后端获取请求,执行相同的加密并比较标题;如果它们相同 - 则提出请求。

这使我的三个问题:

  • 这是否真的意味着,即使请求闻了闻,不能被复制,除非该网址+有效载荷是一样的吗?有什么我失踪?

  • 是否有JS库执行这一做法? (或者也可以是针对后端太 - 我使用Django)

  • 有没有更好的方法吗?

+0

这是不是一个特别安全的方法:这是混淆的安全性。 虽然按键隐藏在通过丑化前端,它仍然存在有人发现,如果他们试图够硬... – user184994

+0

而不是滚动您自己的解决方案考虑使用一些尝试和OAuth的测试这样。还有的前端和后端可用的库/工具包(Django的OAuth的工具包) – AndrewS

+0

JWTs你试图正是重建,但在一个更安全的方式。如果你的秘密是在客户端,那么解决它是微不足道的。 – Trickycm

回答

2

捆绑,只要你想,如果它授权请求您的安全密钥是里面的js我将能够取消丑化(美化),并得到它。使用SSL加密连接,只需使用JWT)

http://jsbeautifier.org/

你将不得不授权用户以某种方式反正,所以这意味着发送私人数据,建立了“会话”。让它成为用户名,电子邮件,密码或一些“秘密”令牌。