在单页 js 应用程序中保护 UI



让我首先说,我确实理解永远不应该试图在客户端保护javascript中的任何内容。 我的问题指的是一些用户会看到而其他人看不到的 UI。 通常,此 UI 还绑定了某种逻辑。 无论是 Backbone 还是 Ember,根据用户角色显示或隐藏 UI 不同部分的一些正常做法是什么?

我最初的想法是根据当前登录的用户加载不同的 js。 除此之外,还想到了异步加载视图模板。 我很想听听其他的想法和模式。 请记住,这是假设客户端与之通信的后端 API 对于给定用户来说已经是安全的。 因此,即使他们要查看安全的 UI 组件,它也无法正常工作。

我不确定这是否真的是一个安全问题。无论如何,安全性由服务器处理。它更多地与应用程序具有不同模式时如何组织javascript有关。

我认为为这两种模式使用一组完全不同的 javascript 文件不是一个好主意。您应该尝试分离数据和功能,并在每种模式下提供不同的数据。即,如果你有一个菜单,不要对所有菜单项进行硬编码,而是对服务器进行ajax调用并加载菜单项。让服务器根据用户权限提供不同的菜单项。

当然,某些功能仅在管理模式下相关。将其放在单独的文件中是完全可以的。

最新更新