zoukankan      html  css  js  c++  java
  • 水平、垂直权限问题(横向越权与纵向越权)

    参考:
    水平权限漏洞以及解决方法
    横向越权与纵向越权

    横向越权与纵向越权

    横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源
    纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源

    如何防止横向越权漏洞:
    可通过建立用户和可操作资源的绑定关系,用户对任何资源进行操作时,通过该绑定关系确保该资源是属于该用户所有的。
    对请求中的关键参数进行间接映射,避免使用原始关键参数名,比如使用索引1代替id值123等

    如何防止纵向越权漏洞:
    建议使用基于角色访问控制机制来防止纵向越权攻击,即预先定义不同的权限角色,为每个角色分配不同的权限,每个用户都属于特定的角色,即拥有固定的权限,当用户执行某个动作或产生某种行为时,通过用户所在的角色判定该动作或者行为是否允许。


    水平权限问题

    攻击者可以根据接口参数中的id加1等操作,来获取其他用户的权限或数据。

    解决方法

    • 水平权限参数不要用自增值,用id加密、随机数或GUID,但搜索引擎或攻击者可以同样用这个随机数和连接去进行操作
    • web层检查发起请求的用户权限,比如从session信息中获取
    • 数据库表增加ownerId字段,增删改查询时加上其作为where语句条件(即每一个信息增加一个发布人的字段,修改的人必须与发布的人为同一个人才可以访问)

    垂直权限漏洞是指Web应用没有做权限控制,或仅仅在菜单上做了权限控制,导致恶意用户只要猜到了其他页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。
    修复方案:
    只需要对url资源进行权限验证即可。

  • 相关阅读:
    vue-router2.0 组件之间传参及获取动态参数
    vuex
    移动端微信部分知识总结
    移动端js知识总结
    [luogu]P4365[九省联考]秘密袭击coat(非官方正解)
    [luogu]P4364 [九省联考2018]IIIDX
    [luogu]P4363 [九省联考2018]一双木棋chess
    后缀数组自用
    BZOJ5288 [Hnoi2018]游戏
    Bzoj5290: [Hnoi2018]道路
  • 原文地址:https://www.cnblogs.com/wyp1988/p/10019126.html
Copyright © 2011-2022 走看看