React 客户端/服务器端渲染安全问题,隐藏/保护路由

0xC*_*FEE 5 javascript jwt reactjs

我有一个关于 React 渲染行为的问题。如果我错了,请纠正我,我是 React 和 Web 开发的新手。

据我所知,React SPA 的默认渲染发生在客户端,对吧?

所以这意味着 src 目录中的整个 JSX 代码将在第一次访问页面时下载(参见 Chrome WebDeveloper Tools Source 选项卡的图片),对吗?

假设我将开发一个管理区域,只有授权用户才能访问,例如通过 JWT,JS 代码仍然包含有关管理区域的信息,即使没有渲染,具有相应知识的人也可以访问该管理区域因为有关管理区域的所有信息都已下载到客户端计算机,对吗?

当然,我可以通过 api 和 JWT 令牌保护敏感数据,但是如果我不想让客户端知道管理区域内容怎么办?对于某种这种情况,是否有最佳实践,例如客户端(默认用户内容)和服务器端(管理区域内容)渲染的混合?最好的方法是什么?客户端/服务器端渲染的优点和缺点是什么?

谢谢&&请友善,正如已经提到的,我了解 React 和 WebDev &&抱歉我的英语,我会努力不断改进它。

Que*_*tin 2

据我所知,React SPA 的默认渲染发生在客户端,对吧?

不必要。这取决于您如何设置项目。

所以这意味着 src 目录中的整个 JSX 代码将在第一次访问页面时下载

不必要。例如,请参阅Webpack 代码分割

当然,我可以通过 api 和 JWT 令牌保护敏感数据,但是如果我不想让客户端知道管理区域内容怎么办?

不要将内容放入应用程序中。将其保存在受 JWT 保护的数据中。

或者首先让面向客户的应用程序和管理应用程序成为不同的应用程序。

客户端/服务器端渲染的优点和缺点是什么?

服务器端渲染在初始加载时速度更快,在 JS 失败时也能工作,并且对搜索引擎来说是更好的食物。

后续页面加载时客户端渲染速度更快。

这并不是真正的安全因素。