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

5

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

据我所知,React单页应用程序的默认渲染是在客户端上进行的,对吗?

这意味着src目录中的整个JSX代码将在第一次访问页面时被下载(请参见Chrome WebDeveloper工具源选项卡的图像),对吗?

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

当然,我可以通过API和JWT令牌来保护敏感数据,但是如果我不希望客户端知道管理区域的内容怎么办?是否有针对此类情况的最佳实践,例如客户端(默认用户内容)和服务器端(管理区域内容)渲染的混合?如何做到最好?客户端/或服务器端渲染的优缺点是什么?

谢谢&&请友善一点,如我所提到的,我是React和Web开发的新手&&对不起我的英语,我会不断努力改进。


你可以考虑对特定路由组件进行代码分割和延迟加载。示例。否则,如果用户只能“发现”应用程序处理/渲染的路由,我认为没有太大问题。如果您正确使用令牌等来保护后端中的任何敏感端点,则仅知道前端“页面”存在并不会对任何人产生太大影响。 - Drew Reese
1个回答

2
“据我所知,React单页应用程序的默认渲染是在客户端进行的,对吗?” “不一定。这取决于您如何设置项目。” “那么这意味着src目录中的整个JSX代码将在页面第一次访问时下载?” “不一定。例如,请参见Webpack代码拆分(link1)。” “当然,我可以通过API和JWT令牌保护敏感数据,但如果我不希望客户端知道管理员区域的内容怎么办?” “不要将内容放在应用程序中。将其保留在由JWT保护的数据中。” “或者首先使面向客户的应用程序和管理员应用程序成为不同的应用程序。” “客户端/服务器端渲染的优缺点是什么?” “服务器端渲染在初始加载时更快,当JS失败时工作,并且更适合搜索引擎。” “客户端渲染在后续页面加载上更快。” “这实际上与安全性无关。”

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