Angular、Meteor、Ember:如何使用客户端框架 = 安全性实现管理视图?
Angular, Meteor, Ember: How are Administration Views implemented with Client Side-Frameworks = Security?
这些我都没用过。但我想知道我将如何最有效地与他们一起实施 admin Views/Screens,主要是从安全角度来看,而不是泄漏内部信息。
服务器端:(PHP/Java/Ruby/Python...)
有条件地输出仅在管理视图中可用的表单元素非常容易且非常安全。
客户端(Ember/Angular/Meteor...):
我可以在客户端有条件地检查 Role/Permission 并呈现
相应的屏幕。但它总是会泄露内部信息(有人可以很好地理解我的应用程序为管理员提供的内部功能,查看源代码)。 (当然我也必须在服务器端进行验证!)
这是怎么解决的?
重新编码管理视图并拥有两个界面是否会导致代码重复?或者解决这个问题的常见做法是什么?
我在 Ember 中编写了一个应用程序,并在其中包含管理面板,但只有 isAdmin
设置为 true
的用户才能访问它。现在看这个问题,我会创建 2 个应用程序 - 1 个用于临时用户,1 个用于管理员。我会选择它,因为将向最终用户提供更少的代码,并且普通用户将完全无法访问管理员特定的逻辑和视图。因此,如果您使用 Ember,我的建议是创建 2 个应用程序而不是 1 个,并通过本地 Ember CLI 插件共享相同的代码。
这些我都没用过。但我想知道我将如何最有效地与他们一起实施 admin Views/Screens,主要是从安全角度来看,而不是泄漏内部信息。
服务器端:(PHP/Java/Ruby/Python...)
有条件地输出仅在管理视图中可用的表单元素非常容易且非常安全。
客户端(Ember/Angular/Meteor...):
我可以在客户端有条件地检查 Role/Permission 并呈现 相应的屏幕。但它总是会泄露内部信息(有人可以很好地理解我的应用程序为管理员提供的内部功能,查看源代码)。 (当然我也必须在服务器端进行验证!)
这是怎么解决的?
重新编码管理视图并拥有两个界面是否会导致代码重复?或者解决这个问题的常见做法是什么?
我在 Ember 中编写了一个应用程序,并在其中包含管理面板,但只有 isAdmin
设置为 true
的用户才能访问它。现在看这个问题,我会创建 2 个应用程序 - 1 个用于临时用户,1 个用于管理员。我会选择它,因为将向最终用户提供更少的代码,并且普通用户将完全无法访问管理员特定的逻辑和视图。因此,如果您使用 Ember,我的建议是创建 2 个应用程序而不是 1 个,并通过本地 Ember CLI 插件共享相同的代码。