ReactJs - 隐藏 state 和 props

4

我正在参与一个项目,并且刚刚开始使用ReactJs(所以还是新手)。

现在我有一个问题:使用React开发工具的用户可以看到您所有的属性和状态。如何防止用户查看例如ID和更多私密信息?

先感谢您的帮助。


4
@Sag1v 嘲笑非英语母语者的英语拼写是不礼貌的。回答你的问题,http://remarkablemark.org/blog/2017/01/25/disable-react-devtools/,你可以在生产环境中禁用 devtools。 - Robbie Milejczak
3
实际上,我不是以英语为母语的人,"privet" 是我打错了(如果冒犯到任何人我很抱歉)。至于您的建议,它可能会禁用开发工具(尽管我相信可以通过某种方式绕过),但它实际上不会隐藏任何数据。 - Sagiv b.g
继@Sag1v所写的内容之后,您无法在客户端上隐藏_任何东西_。问题本身是无效的,您发送到计算机上的所有内容都是_公开的_,您无法对其拥有100%的控制权。在这种情况下,“安全”只是依赖于人们太懒或不够了解如何轻松获取数据的另一种方式。顺便说一句,这不是一个编程问题。 - Mörre
1个回答

7

这其实不是一个ReactJS问题,而是一个关于Web浏览器/互联网架构的问题。不幸的是数据始终可以在客户端被截获,因为他们需要该数据才能与应用程序交互。您必须依赖于用户浏览器扩展和内部安全措施。

尽管如此,您仍然可以使数据更难理解。这不会防止有经验的“黑客”读取它,但可能会防止某些恶意用户操纵您的应用程序。

  • 通过缩小代码并隐藏源地图,在生产环境中使调试更加困难。
  • 使用base64或其他自定义加密技术加密您的数据,以使其更难读取。
  • 如果您的代码必须在未受保护的环境下运行(例如公共WiFi),并且这是一个安全问题,请在您的API中实现某种端到端加密。

最重要的是:只向客户端发送实际需要的数据,即安全可传输的数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接