越权漏洞
越权漏洞有两个维度(水平维度、垂直维度),即横向越权漏洞和纵向越权漏洞。
横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源。
纵向越权:纵向越权指的是一个低级别用户(攻击者)尝试访问高级别用户的资源。
如何防止横向越权漏洞:
可通过建立用户和可操作资源的绑定关系,用户对任何资源进行操作时,通过该绑定关系确保该资源是属于该用户所有的。
可做请求参数的加密处理。
对请求中的关键参数进行间接映射,避免使用原始关键参数名,比如使用索引1代替id值123等。
如何防止纵向越权漏洞:
建议使用基于角色访问控制机制来防止纵向越权攻击,即预先定义不同的权限角色,为每个角色分配不同的权限,每个用户都属于特定的角色,即拥有固定的权限,当用户执行某个动作或产生某种行为时,通过用户所在的角色判定该动作或者行为是否允许。
参考资料: