用户可以以任何方式看到未呈现的反应组件吗?

时间:2018-05-22 18:56:11

标签: reactjs

假设我们有一条路由,如果用户已在其他公共资源中登录,则可以选择显示受保护资源。

在用户登录之前,我不会呈现受保护的资源,但用户可以查看受保护的资源,即使该组件未呈现,因为应用程序也会加载该受保护组件的数据。 那么可以看到这些数据吗?

如果我们使用react连接节点服务器会是什么情况,如果我们刚刚部署了没有任何后端的react应用程序会怎么样?

澄清:这只是尝试了解反应生产构建的实际工作

2 个答案:

答案 0 :(得分:0)

您永远不应该将受保护资源与客户端一起发送。虽然未呈现,但可以读取发送的所有数据。您只需打开chrome dev工具并阅读代码即可。可以读取发送到浏览器的任何内容和所有内容。

受保护的数据应存储在后端,并且每次用户请求您需要进行身份验证的数据时。这通常由称为JWT和其他方法的东西完成。它是如何工作的,当用户向服务器发送用户名和密码时,服务器会验证它们是否匹配并发回和令牌。对受保护数据的每个后续请求都将随身携带令牌,以便您知道该用户已经过验证。

阅读this了解有关JWT的更多信息。

答案 1 :(得分:-1)

您应该想象与您的服务器通信的代码不是您的javascript。如果您正在制作未经身份验证的API请求,那么任何人都可以编写代码来点击您的API并获得响应,他们甚至可以使用您的代码作为模板来启动它们。

专门回答你的问题,除非有东西被渲染,否则它不会出现在DOM中,因此它不会被看到。例如,如果你要将一个组件作为一个孩子<Example> <div>FIND ME</div> </Example>传递,然后永远不会像<div>Inner Example </div>那样调用孩子,那么如果你检查了DOM那么就不会是<div>FIND ME</div> < / p>