先总结一下web应用程序安全管控的要点﹕
1.在每次客户端请求(Request)时进行安全管控(原因和作法请参考思考2)
2.安全管控分为认证和授权(二者完全分离﹐单独实现﹐参考思考2的代码示例)
3.认证即识别请求者是谁(提取用户标识或匿名登录)(作法简单﹐一般采用Session或Cookie实现)
4.授权即判断用户是否有被请求的资源(URL)的权限(本篇解释)
5.如果没有权限就转入无权处理过程,由它视相关的情形向用户报错(如aspx和asmx的报错过程应该不 一样)。
要判断用户是否有被请求的资源的权限﹐首先就要知道用户请求的是什么资源。所以我将资源进行抽 象﹐并且称它为URL。URL预设有3种形式﹐分别是﹕
1.Request.Path,这是最基本的形式。如:a.aspx , b/b.aspx , ajax/c.ashx
2.带QueryString的Request.Path﹐这种形式增大了权限管控组件的适应性和灵活性(可参考上一篇的 例子)。如 d.aspx?kind=1 , c/e.aspx?ismanage=Y
3.只到某个目录的Request.Path﹐这种形式方便了某些权限简单的系统使用。如 f/ , g/h/
怎样建立URL呢?
对每个系统功能﹐列出实现这个功能必须要访问哪些程序。如实现”系统管理”包括manage目录下的 所有程序﹐还包括common/listuser.aspx程序﹐还包括adduser.aspx?kind=1这支程序(adduser.aspx? kind=2属于”用户管理”功能)﹐这样建立三笔URL的数据。
时间: 2024-09-10 19:41:40