node.js - 使用 react-devtools 破解身份验证

标签 node.js reactjs authentication redux jwt

我正在学习 SPA 中基于 token 的身份验证,我遇到了一个问题。想象一下我的应用程序中的身份验证过程是通过以下方式完成的:每当用户提供正确的凭据时,我都会给他一个 token 并将 redux 存储中的“已验证” key 更改为 true,这允许他在我的应用程序中查看私有(private)内容。我要隐藏的组件编码如下:

if(this.props.authenticated) {
  return <SuperSecretComponentOfIlluminatiMasonic666Chemtrails />
} else {
  return <PublicComponent />
}

我想知道这是否是一种安全的方法,因为任何人都可以安装 react-dev-tools,在浏览器中翻转“已验证”键,然后在不提供凭据的情况下查看我想隐藏的内容。我的组件应该以不同的方式编码,还是一切都很好,我只是出了点问题?我在很多教程中都看到过这种方法,但是这个问题让我晚上睡不着觉

最佳答案

您应该从服务器获取 protected 内容,并且该服务器应该仅在用户发送有效 token 时才传送内容。

这样,是的,任何人都可以在客户端中翻转开关,但这只显示 UI 组件,没有任何数据。

这是创建单页应用程序时常用的方法。只要您从一开始就没有在您的客户端中保存 secret 或敏感数据,它们就与您提供数据的服务器/API 一样安全。

关于node.js - 使用 react-devtools 破解身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864034/

相关文章:

sql - Sequelize 中的唯一值

css - React : cannot see changes when applying <ThemeProvider> 的 Material-UI

asp.net - 使用动态机器 key 生成身份验证 token

reactjs - Material-ui示例代码未编译

javascript - 使用node js和react js的文件加载问题

java - 使用 oauth2 的程序化身份验证

c# - HTTP 请求未经客户端身份验证方案 'Anonymous' 的授权。从服务器收到的身份验证 header 为 'Basic Realm’

javascript - Node 的计时器不按照文档运行

node.js - Elastic Beanstalk CLI 错误 : This directory has not been set up with the EB CLI You must first run "eb init"

node.js - Node js中的AWS texttract方法没有被调用