javascript - nuxt/auth 如何真正安全?
问题描述
让我们假设一个客户端在索引页面上打开您的nuxt.js网站。从那里,他们进行身份验证(您为此目的使用了@nuxtjs/auth-next )。然后他们移动到只有经过身份验证的用户才能看到的安全页面。这个安全页面是一个 .vue 文件,位于您的“pages”文件夹中,带有middleware: ["auth"]
.
现在,这个页面真的安全吗?
我的意思是,恶意用户不能在没有经过身份验证的情况下修改页面并访问它吗?因为这种场景中的“安全”只在客户端实现对吗?[编辑]
解决方案
你的应用程序最后是一个 SPA,如果你想绕过一个带有安全检查的中间件,你可以禁用页面上的 JS。但是,由于没有直接生成内容,您将看不到任何内容,因为它不在这里(作为静态文件)。
如果您的应用程序是同构的(基本上有一个ssr: true
),则 auth 模块仍将禁用对这些页面的访问(您可以仔细检查)。
最后,在以下情况下收到关键信息:
- 你确实有一个有效的 JWT 令牌(登录后)
- 您向后端提交 HTTP 查询
- 后端承认它并且令牌是有效的
- 后端通过 HTTP 响应为您提供敏感信息
最后,您的客户端代码不需要是安全的。如果有人以某种方式入侵了您的客户端状态并到达敏感页面,他仍然没有有效的 JWT 令牌,因为验证仍然在后端进行。
只有在将正确的凭证发送到后端并让后端验证这些凭证时才能生成的凭证。
推荐阅读
- c# - 根据复选框选择重新加载页面
- java - Protobuf Tcp socket 与 android 通信
- flutter - 使用 Firestore 为 StreamBuilder 创建流
- arrays - 显示用户输入值的 C 代码
- pre-commit.com - pre-commit.com:.pre-commit-config.yaml 和 requirements.txt 中的相同版本
- chef-infra - 使用 Chef.event_handler 时是否可以访问 run_status 对象?
- c# - 如何在winform的构造方法中使用用户定义的属性?
- r - 列表中每个矩阵的 for 循环
- aws-cli - aws glue get-databases 在 CLI 上返回空列表
- python - Django 使用多部分/表单数据和字典测试发布请求