WEB开发网
开发学院网络安全安全技术 关于web应用程序安全的思考(四)----一种全新的... 阅读

关于web应用程序安全的思考(四)----一种全新的权限管控思想

 2008-11-26 13:35:52 来源:WEB开发网   
核心提示: 从上面可以看出﹐程序员在开发系统时是无需关注任何关于权限管控的非业务代码的﹐它们只需按照系统设计时的流程完成程序即可,而在开发时配置权限数据﹐运行时动态分配权限更是让系统可适应于任何的关于权限需求变更,关于web应用程序安全的思考(四)----一种全新的权限管控思想(4),不知道有没有读者

从上面可以看出﹐程序员在开发系统时是无需关注任何关于权限管控的非业务代码的﹐它们只需按照系统设计时的流程完成程序即可。而在开发时配置权限数据﹐运行时动态分配权限更是让系统可适应于任何的关于权限需求变更。

不知道有没有读者发现﹐订单审核时的权限是如何实现的?

数据权限的概念﹕

用户在需求中提出﹕在”订单审核”时﹐销售经理可以打印其所在区域的订单﹐管理员审核所有订单。

这种情况我们将其认定为数据权限。而数据权限归属于业务需求﹐对于业务需求我们认为其实现必须和业务代码在一起开发。

比如在这里﹐我们会在设计时

指定这个页面的初始化流程﹕抓出当前登录用户-->抓出当前登录用户的权限区域-->将权限区域数据代入抓出待审核订单。

指定用户单击审核按钮时的流程﹕找到当前选择的订单号-->调用审核方法进行审核-->显示审核结果

从这里我们可以看出﹕

1.      对于用户应该审核哪些订单数据﹐我们并没有依据其是管理员还是区域经理﹐而是将这种情况认定为数据权限﹐这在以后面对用户的这部分需求变更时可以无需任何系统更新动作。

àA区域经理在休假后﹐B区域经理代理其审核A区域的订单。

à由于某种原因﹐要求C区域经理和D区域经理共同审核C区域和D区域的订单。

àE区域经理升迁为副总后﹐审核E,F,G,H区域的订单。

à总经理要求﹐他自己可以在系统运行时﹐指定他的几位助手审核他指定的某些区域的数据

因此抽象出數據权限﹐并且将其归类到业务功能上﹐我们很容易就可以处理这些需求的变更

2.      通过系统的初始化流程可以看出﹕不会出现用户审核到他无权审核的订单这种情况﹐因为我们在程序开发时﹐就是抓的权限区域下的订单﹐因此用户只能审核其有权审核的订单

顺便再提一下﹕系统中出现的关于”管理员”,”注册用户”,”普通用户”,”财务部门”,”仓库管理者”等这些群组对象﹐不管在业务程序中还是在权限判断时﹐都不会出现任何关于这些的hardcode代码﹐他们只不过是用户对应权限的一种方式而已﹐不是权限系统所必须的

关于web应用程序安全方案的完整实现请继续关注这个系列

上一页  1 2 3 4 

Tags:关于 web 应用程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接