web安全4

二、对于系统的操作员和管理员或CP/SP的URL请求进行鉴权相对复杂,可以参考:
1、通过XML文件,以正则表达式定义各种URL对应的访问控制权限位,请参考:
2、创建系统权限表,根据问控制列表AccessControlList.xml中定义的权限来导入权限数据。
3、在为角色分配权限时,如果角色拥有某权限,则对应的权限位为1,否则为0。如果系统总共有26项权限,则最终得到一个长度26的字符串(由0和1组成)。
4、当操作员和管理员或CP/SP登陆时,根据其对应的角色,得到对应的权限字符串(比如10101100111000011010111001),保存到session对象中。
5、部署过滤器,当操作员和管理员或CP/SP发起任何URL请求时,过滤器根据问控制列表AccessControlList.xml判断该请求对应的权限位,然后与session对象中保存的该用户的权限字符串对应的权限位是否为“1”,如果为“1”则正常处理请求,否则,表明越权,注销该会话,并记录告警日志。
规则3.4.2:授权和用户角色数据必须存放在服务器端,不能存放在客户端,鉴权处理也必须在服务器端完成。
说明:禁止将授权和角色数据存放在客户端中(比如cookie或隐藏域中),以防止被篡改。
规则3.4.3:一个帐号只能拥有必需的角色和必需的权限。一个组只能拥有必需的角色和必需的权限。一个角色只能拥有必需的权限。
说明:做到权限最小化和职责分离(职责分离就是分清帐号角色,系统管理帐号只用于系统管理,审计帐号只用于审计,操作员帐号只用于业务维护操作,普通用户帐号只能使用业务。)这样即使帐号被攻击者盗取,也能把安全损失控制在最小的限度。

猜你喜欢

转载自xiaoyuwei.iteye.com/blog/1159071