nuxt/auth 真正安全吗?

问题描述 投票:0回答:2

假设客户在索引页面上打开您的 nuxt.js 网站。从那里,他们进行身份验证(您为此目的使用了@nuxtjs/auth-next)。然后他们会转到只有经过身份验证的用户才能看到的安全页面。此安全页面是“pages”文件夹中的 .vue 文件,带有

middleware: ["auth"]

现在,这个页面真的安全吗?

javascript vue.js security nuxt.js nuxt-auth
2个回答
3
投票

你的应用程序最终是一个SPA,如果你想绕过中间件的安全检查,你可以禁用页面上的JS。但是,由于没有直接生成任何内容,因此您将看不到任何内容,因为它不在这里(作为静态文件)。

如果您的应用程序是同构的(基本上有一个

ssr: true
),身份验证模块仍然会禁用对这些页面的访问(您可以仔细检查)。

最后,在以下情况下收到关键信息:

  • 您确实拥有有效的 JWT 令牌(登录后)
  • 您向后端提交 HTTP 查询
  • 后端确认,token有效
  • 后端通过 HTTP 响应为您提供敏感信息

最后,您的客户端代码不需要是安全的。如果有人以某种方式破解您的客户端状态并到达敏感页面,他仍然不会拥有有效的 JWT 令牌,因为验证仍然发生在后端。
仅当将正确的凭据发送到后端并让后端验证这些凭据时才能生成。


0
投票

现在,这个页面真的安全吗?

如果客户端提供了有效的访问令牌,则通过请求提供受保护的内容。 受保护的内容在运行时提供。

因为这个场景中的“安全”仅在客户端实现,对吗?

安全性不仅仅在客户端实现。 前提是:访问令牌已通过身份验证服务器的身份验证流程安全地获得。 如果这听起来不清楚,我建议阅读更多有关身份验证流程的内容。 Auth0 有一些关于不同流程的很好的文档。 https://auth0.com/docs/authorization/flows

那么,仅向经过身份验证的用户显示复杂页面的最佳方式是什么?

内容在运行时提供。服务器端或客户端。 这里有一些 Nuxt 的设置指南。 这是我从列表中找到的第一个(Auth0)。 https://auth.nuxtjs.org/providers/auth0

我不知道这些指南更新得如何,但认证服务提供商往往自己更新了指南。

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