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

时间:2012-09-26 16:13:50

标签: javascript security backbone.js ember.js

首先让我说,我确实理解一个人永远不应该尝试在客户端的javascript中保护任何东西。我的问题是指某些用户会看到的UI,而其他用户则看不到。通常这个UI也有一些绑定它的逻辑。无论是Backbone还是Ember,根据用户角色显示或隐藏UI的不同部分的常规做法是什么。

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

1 个答案:

答案 0 :(得分:0)

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

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

某些功能当然只与管理模式相关。把它放在一个单独的文件中是完全没问题的。