我实际上正在为我的公司开发一个单页应用程序,该应用程序涉及不同用户角色的不同视图,以防止没有足够权限的人访问他们不应该看到的数据或执行他们无权执行的功能.
我在后端使用带有 REST api 的 PHP,所以我认为我在那里相当安全,但我对客户端安全一无所知。
我正在考虑在我的 main.js 中以这种方式存储具有当前用户角色的 App 变量:
require(['jquery',
'underscore',
'backbone',
'marionette',
'app',
'routers/adminRouter',
'routers/userRouter',
], function($, _, Backbone, Marionette, App, AdminRouter, UserRouter){
App.vent.on("routing:started", function(){
Backbone.history.start();
});
App.addInitializer(function(){
if(userRole==="admin"){
App.Router = new AdminRouter;
} else {
App.Router = new UserRouter;
}
App.vent.trigger("routing:started");
});
App.addRegions({
content: "#main",
page: "#page",
dialogs: "#dialogs"
});
App.start();
App.vars = {};
App.vars.userRole = userRole;
App.js 只是:
define([
'underscore',
'backbone',
'marionette'
], function(_, Backbone){
var App = new Backbone.Marionette.Application();
return App;
});
变量userRole
只是一个全局变量,我在 index.php 页面上从我的服务器引导。这个安全多少?有没有办法改变userRole
页面加载的值?或者App.vars.userRole
在应用程序运行时进行更改?我无法App
从控制台访问变量,但正如我所说,我对客户端编程很陌生,我必须知道我是否可以依赖该变量的值。处理这种情况的最佳方法是什么?先感谢您。