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

标签 javascript security backbone.js ember.js

首先让我说,我确实明白,永远不要尝试在客户端用 javascript 保护任何东西。我的问题是指一些用户会看到而其他用户不会看到的 UI。通常这个 UI 还绑定(bind)了某种逻辑。无论是 Backbone 还是 Ember,根据用户 Angular 色显示或隐藏 UI 不同部分的一些常规做法是什么。

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

最佳答案

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

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

某些功能当然只在管理模式下相关。将它放在一个单独的文件中会非常好。

关于javascript - 在单页 js 应用程序中保护 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12606053/

相关文章:

java - 未提供 Android 列出的加密算法

javascript - Backgrid 过滤器在 Backbone 应用程序中不起作用

javascript - 主干/Marionette 试图让 AttachView 工作

javascript - 无效的字符串长度/分配大小重载 JavaScript

javascript - 为什么我不能将 js promise resolve 包装在 jquery 对象中?

javascript - 错误: Cannot read property 'checked' of undefined

node.js - node.js 中的 Mongodb 安全性

asp.net - 如何测试ASP.NET成员身份密码是否满足配置的复杂性要求?

javascript - 为什么我的 jquery 对话框不工作?

jquery - Backbone.js $.ajax 集合 init 内的成功回调不调用同一集合中的函数