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

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

 2008-11-26 13:35:52 来源:WEB开发网   
核心提示: Else (user.has(“管理员订单删除”))抓所有订单﹐并显示删除按钮﹐隐藏修改按钮上面方式有以下缺点﹕1.权限判断has方法与业务系统紧耦合2.我没有说这两种权限不能同时拥有﹐如果用户又有订单维护﹐又有管理员订单删除功能怎么办?其它诸如以角色判断更是不可取

Else (user.has(“管理员订单删除”))

抓所有订单﹐并显示删除按钮﹐隐藏修改按钮

上面方式有以下缺点﹕

1.权限判断has方法与业务系统紧耦合

2.我没有说这两种权限不能同时拥有﹐如果用户又有订单维护﹐又有管理员订单删除功能怎么办?

其它诸如以角色判断更是不可取﹐将角色hardcode进业务代码中﹐万一用户的角色需要变更那你不是麻烦大了?

二.在系统开发完后﹐系统上线前﹐要求程序员将程序交给我﹐如﹕

下单:    order.aspxproductlist.aspx

订单修改﹕ ordermaintain.aspx?kind=1orderlist.aspx

管理员订单删除﹕ ordermaintain.aspx?kind=2

订单审核﹕  check.aspxorderlist.aspx

收款﹕  pay/*

等等

三.分配权限(新增角色列表﹐分配角色权限﹐将用户对应到角色﹐也可以通过权限分配程序让用户自己维护这些数据)

群组        系统功能

普通用户    下单

普通用户    订单维护

管理员      管理员订单删除

区域经理    订单审核

管理员      订单审核

财务部门    收款

仓库管理者  发货

普通用户    用户订单报表

区域经理    审核者订单报表

管理员      审核者订单报表

财务部门    收款报表

管理员      收款报表

仓库管理者  出库报表

管理员      出库报表

(当然上面只是一种对应关系﹐具体数据架构怎么设计可以通过流行的01掩码来实现其判断和存储)

四.在Request时通过URL分析对应到的系统功能(可以有多个)﹐然后判断用户是否拥有任一对应到的功能﹐就让它过﹐否则就拒绝(具體實現可參考這個系列的前几篇以及后續)。

上一页  1 2 3 4  下一页

Tags:关于 web 应用程序

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