MEAN 中 angular JS 的服务器端角色访问路由
Server side role access routing for angular JS in MEAN
我正在研究 MEAN 堆栈,我的头脑坚持将服务器端角色授权合并到路由中。
简而言之,解决方案必须满足这样的需求,即 除非提供适当的访问令牌,否则用户无法欺骗浏览器访问页面。
我在网上搜索了教程,所有提供的解决方案仍然可以通过修改代码欺骗浏览器来绕过。
示例:
1) 用户在 cookie 中有访问令牌。
2)客户端Side/Server端解密访问令牌并识别用户角色
3) 用户角色是 return 角色可访问性逻辑。
归根结底,用户仍然可以通过以下方式欺骗浏览器:
1) removing/replacing return 用户角色
代码段的逻辑
2) 用特定用户角色替换 return 值以访问它。
如何避免这种情况?
$routeProvider.when('/admin/index', {
controller: 'AdminIndex',
templateUrl: 'AdminIndex.html',
access: {
roles: ['Admin']
});
});
客户端完全在用户的控制之下。您需要使用访问令牌来确定用户在服务器上具有什么角色,并限制对填充页面所需的数据的访问。
不必担心用户能否访问管理页面,只需担心允许他们获取只有管理员才能访问的数据以及接受来自他们的请求(经授权)到更改的端点服务器上的东西。
我正在研究 MEAN 堆栈,我的头脑坚持将服务器端角色授权合并到路由中。 简而言之,解决方案必须满足这样的需求,即 除非提供适当的访问令牌,否则用户无法欺骗浏览器访问页面。 我在网上搜索了教程,所有提供的解决方案仍然可以通过修改代码欺骗浏览器来绕过。
示例:
1) 用户在 cookie 中有访问令牌。
2)客户端Side/Server端解密访问令牌并识别用户角色
3) 用户角色是 return 角色可访问性逻辑。
归根结底,用户仍然可以通过以下方式欺骗浏览器:
1) removing/replacing return 用户角色
代码段的逻辑
2) 用特定用户角色替换 return 值以访问它。
如何避免这种情况?
$routeProvider.when('/admin/index', {
controller: 'AdminIndex',
templateUrl: 'AdminIndex.html',
access: {
roles: ['Admin']
});
});
客户端完全在用户的控制之下。您需要使用访问令牌来确定用户在服务器上具有什么角色,并限制对填充页面所需的数据的访问。
不必担心用户能否访问管理页面,只需担心允许他们获取只有管理员才能访问的数据以及接受来自他们的请求(经授权)到更改的端点服务器上的东西。