-1

我正在学习如何在我的 rails 5 API 中实现安全性。我正在开发一个角度应用程序来使用 API,为此我正在实现 devise_token_auth gem,但是在邮递员的测试中,我可以使用电子邮件和密码进行注册,然后收到带有令牌(过期)的响应,数据, 内容类型, 客户端, uid,然后我从 Angular 进行测试,并从我的浏览器和 Web 控制台注册,我可以看到从另一个应用程序访问 api 所需的所有信息。

设计方法 authenticate_user 需要参数:content-type、access-token、client、expiry、uid,但是每个人都可以通过查看 Web 控制台中的响应来访问此信息,所以...我选择此信息并粘贴 Postman 请求,我可以访问受保护的端点,那么这个 gem 有什么用呢?我错过了什么吗?

在这里,我从 Angular 登录,并在 Web 控制台中检查响应:

在此处输入图像描述

然后将信息粘贴到邮递员的新请求中以访问受保护的端点:

在此处输入图像描述

并且访问成功了,如何防止header信息显示在web控制台上?

4

2 回答 2

1

但是,如果他们查看 Web 控制台中的响应,每个人都可以访问此信息

我错过了什么吗?

是的。“每个人”只能看到他们自己的令牌(不包括嗅探 http 之类的东西。您将使用 TLS,对吗?)。使用他们的代币,用户可以做他们想做的事,而你几乎无能为力。

但是他们无法通过这种方式看到其他用户的令牌。

于 2018-10-09T14:54:05.123 回答
1

这就是互联网的运作方式。您正在登录并向服务器发送信息。然后,服务器会使用您下次可以使用的秘密令牌进行响应,而不是用户名和密码。使用该秘密令牌,您可以执行后续请求,而不是使用您的用户名和密码。

关于您对“每个人”看到它的担忧。这就是您需要 SSL 加密的原因,这样可以确保其他人无法读取您发送的用户名和密码,以及您收到的令牌。如果没有 SSL,您网络上的任何人或到服务器的路由确实可以读取它。

于 2019-02-09T12:44:01.460 回答