【发布时间】:2020-04-10 16:27:33
【问题描述】:
我正在创建一个可以查看敏感信息的统计网页。
网页有一个表格,里面有大量数据,可以编辑并存储在服务器的数据库中。但在用户获得适当的身份验证(如登录)之前,它需要被隐藏。 (表本身和代码也是)。但是我发现堆栈溢出中的大多数问题都说这基本上是不可能的。但是当我看到很多知名网站时,它们似乎隐藏得很好。所以我想这个问题有一些解决方案。
首先,我构建了一个完整的 React - Express - Node - MariaDB 工具链。
react client负责渲染网页内容和可编辑表格,并请求提交已编辑的内容。
node with express 负责从数据库中检索数据、更新数据库(提供数据以从客户端操作——仅此而已)
当我考虑客户端代码的安全性时遇到了一个问题。我想隐藏页面的所有内容(不仅仅是来自服务器的数据,还有它的逻辑和特性)
为了实现我的目标,我考虑了几件事,但我怀疑如果我创造它是否正确并且运作良好。
-
使用服务器端渲染 -- 由于性能原因和可用资源不足,无法使用
- 服务器端渲染可以对用户隐藏逻辑,因为它忽略了服务器中唯一的 HTML,所有操作都提交给服务器,服务器处理这些操作并提供其结果。
- 所以我一开始只能提供登录页面,如果登录成功,我可以从服务器发送其余的 HTML 及其逻辑。
- 问题是我在网页中的内容很庞大,并且会经常与用户交互,并且在我的桌子上应用虚拟化(出于性能原因),它的数据和渲染逻辑应该由网络浏览器处理。
-
结合 SSR 和客户端渲染
- 我对此的检查不确定,我怀疑是否可能。
- 使用 SSR 向未经授权的用户隐藏网站内容,如果获得授权,Web 浏览器会按需呈现其全部内容。 (授权前应隐藏代码和逻辑,未经授权的用户只能看到登录页面)
- 有可能吗?
-
按需获取代码。
- 也是我的检查,这就是我要找的。但我强烈怀疑这是否可能。
- 工作流程如下 如果用户未登录:: 用户只能看到登录页面及其代码 如果用户已登录:: 用户可以看到页面的功能,如管理、统计等。 如果用户接近特定功能::渲染逻辑和 HTTP 请求接口是从服务器下载的(或者性能较差的逻辑或其他......),它会渲染用户想要看到和做的事情。
不从上面的想法中寻找方法是可以的。你能提供一些大纲来实现这种网页吗?我对网络编程很陌生,所以我找不到合适的方法。我想知道如何使用什么样的解决方案、库、结构来实现这一目标。
我应该为此使用什么库或包? 我该如何实现?
或者,您能否向我描述一下现代网站是如何实现这一目标的? (我觉得SAP系统和我想实现的很像)
【问题讨论】:
-
API(Rest、GraphQL 或其他任何东西)中的数据可以通过令牌或凭据身份验证进行保护,如果用户未登录,则可以防止访问任何敏感信息。我相信可以做一些事情使用 WebPack 和入口点设置来独立加载应用程序的一部分。不过,如果我可能会问,您为什么要经历隐藏应用程序逻辑的障碍?
-
要扩展,我建议您查看 WebPack 的入口点,特别是 multipage application,您需要在 optimisaiton 模块中进行一些调整,这样您就没有重复的代码虽然在不同的部分之间。如果需要,我可以整理一个答案,但有些人可能比我更了解。
-
@PierreChevallier 非常感谢您的回答。我浏览了 webpack 中的入口点,如果与 C 语言相比,它似乎是某种拆分主要功能。 (实际上并不准确)我说的对吗?如果使用这个,我应该把代码放回服务器还是客户端?当我检查入口点时,这是非常合理的。关于第二个问题,不幸的是,这是程序的要求。
标签: javascript node.js reactjs express webpack