web安全开发指南--权限管理
2.1 访问控制安全规则
1 |
访问控制必须只能在服务器端执行。 |
2 |
只通过session来判定用户的真实身份,避免使用其它数据域的参数(比如来自cookie、hidden域、form和URL参数等)来做访问控制。 |
3 |
对web/应用服务器进行安全配置以防止用户对静态文件的无鉴权访问(参考附录11.6)。 |
4 |
对每一个请求页面都执行严格的访问控制检查(参考附录11.2)。 |
5 |
应建立集中式的权限验证接口(参考附录) |
2.2 纵向越权
简要描述 |
如果一名用户能够执行某项功能,但分配给他的角色不具有这种权限,就表示出现了纵向越权漏洞。 |
|
解决方案 |
建议使用基于角色访问控制机制来防止纵向越权攻击,即预先定义不同的权限角色,为每个角色分配不同的权限,每个用户都属于特定的角色,即拥有固定的权限,当用户执行某个动作或产生某种行为时,通过用户所在的角色判定该动作或者行为是否允许(参考附录11.2.1)。 |
|
备注 |
|
|
2.3 横向越权
简要描述 |
如果一名用户能够查看或修改他没有资格查看或修改的资源,就表示出现了横向越权漏洞。 |
|
解决方案 |
2.3.1、可通过建立用户和可操作资源的绑定关系,用户对任何资源进行操作时,通过该绑定关系确保该资源是属于该用户所有的。 2.3.2、对请求中的关键参数进行间接映射,避免使用原始关键参数名,比如使用索引1代替id值123456等(参考附录11.2.2)。 |
|
备注 |
|
提示:如果IE显示不正常,请使用chrome浏览器