繁体   English   中英

Web 控制台中的 Rails gem devise_token_auth 标头足以访问 api,为什么?

[英]Rails gem devise_token_auth headers in web console are enoguh to access api, why?

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

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

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

在此处输入图片说明

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

在此处输入图片说明

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

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

我错过了什么吗?

是的。 “每个人”只能看到他们自己的令牌(不包括嗅探 http 之类的东西。您将使用 TLS,对吗?)。 有了他们的代币,用户就可以随心所欲,而您对此无能为力。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM