在Web安全中,失效的访问控制(也称为权限控制失效或越权访问)是指用户在不具备相应权限的情况下访问了受限制的资源或执行了不允许的操作。这通常是由于Web应用系统未能建立合理的权限控制机制,或者权限控制机制失效所导致的。

危害

  1. 数据泄漏:攻击者可能通过越权访问获取敏感数据,如用户个人信息、财务数据、家庭监控视频等。
  2. 数据被恶意篡改:攻击者可能通过越权访问修改数据,如修改账户余额等。
  3. 隐私侵犯:攻击者获取他人个人信息后可能侵犯他人隐私。
  4. 诈骗实施:获取他人个人信息后转卖给诈骗集团实施诈骗。
  5. 法律责任与声誉损害:Web应用用户的个人信息数据被非法获取后篡改,可能导致用户利益受损,Web应用提供商也可能面临法律责任和声誉损害。

分类

  1. 系统在实现过程中违背了“最小权限原则”或“默认拒绝原则”,导致用户获得了一些特殊权限,而这些特殊权限原本只应该授权给特定的用户或角色。
  2. 通过修改URL地址、内部程序状态、HTML页面,或者使用工具修改API请求的方式绕过访问控制。
  3. 通过提供唯一ID的方式预览或修改其他账户信息及数据。
  4. 未经过访问控制地通过POST、PUT和DELETE方法访问API。
  5. 提权操作,如未登录状态下的用户操作,或者常规用户登录状态下的管理员操作。
  6. 元数据操纵,如重放或修改JWT(JSON Web Token)访问控制令牌,或通过操纵Cookie的方式进行提权。
  7. CORS误配置,可能导致来自未认证源的API访问。

防范措施

  1. 访问控制仅在受信任的服务器端强制执行,确保代码或无服务器API无法被攻击者修改。
  2. 除公共资源外,默认拒绝所有请求,遵循“最小权限原则”和“默认拒绝原则”。
  3. 实施一次访问控制机制并在整个应用程序中重复使用,包括最小化CORS使用。
  4. 模型访问控制应强制执行记录所有权,而不是接受用户可以创建、阅读、更新或删除任何记录。
  5. 记录访问控制失败,并在适当时提醒管理员。
  6. 速率限制API和控制器访问,以最大限度地减少自动攻击工具的伤害。
  7. 注销后,JWT令牌应在服务器上失效。
  8. 开发人员和QA人员应包括功能访问控制的单元和集成测试。
请注意,这些只是一些常见的防范措施,实际的安全策略应根据具体的应用场景和需求进行定制。
 
另外,我最近开发并开源了一个支持免费申请通配符SSL证书的平台:华迅FreeCert,解决了每隔一段时间就要重新申请和部署证书(因为传统的云厂商提供的免费证书一般只有三个月有效期),不支持免费申请通配符证书这两大痛点,欢迎大家注册使用并提供宝贵意见,谢谢!

详解Web应用安全系列(4)失效的访问控制的更多相关文章

  1. 框架基础学习之--详解web+maven+spring+mybatis+struts框架文件夹作用

    详解web+maven+spring+mybatis+struts框架文件夹作用 1.程序名 2.Mybatis,mybatis是数据持久层,就是和对象类有关系的东西 3.存放java文件,xml,p ...

  2. ps切图抠图详解-web前端(转)

    网页设计在技术层面上,第一步是美工做出网页效果图,第二步就是网页前端进行网页切图.网页切图工具常用的有fireworks.PS,这里使用PS进行网页切图. 我们通过设计稿,得到我们想要的产出物(如.p ...

  3. 详解web容器 - Jetty与Tomcat孰强孰弱

    Jetty 基本架构 Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器.它有一个基本数据模型,这个数据模型就是 Handler(处理器 ...

  4. day08:软件系统的体系结构&Tomcat详解&Web应用&http协议

        day08 软件系统体系结构     常见软件系统体系结构B/S.C/S 1.1 C/S C/S结构即客户端/服务器(Client/Server),例如QQ: 需要编写服务器端程序,以及客户端 ...

  5. 详解springmvc控制登录用户session失效后跳转登录页面

    springmvc控制登录用户session失效后跳转登录页面,废话不多少了,具体如下: 第一步,配置 web.xml <session-config> <session-timeo ...

  6. 详解web.xml中元素的加载顺序

    一.背景 最近在项目中遇到了启动时出现加载service注解注入失败的问题,后来经过不懈努力发现了是因为web.xml配置文件中的元素加载顺序导致的,那么就抽空研究了以下tomcat在启动时web.x ...

  7. web应用配置文件详解(web.xml)

    转载链接地址:http://blog.csdn.net/guihaijinfen/article/details/8363839 <?xml version="1.0" en ...

  8. 详解 Web基本概念

    作为本专栏的第一篇博文,本人将带领同学们初步了解什么是Web,以及有关Web学习的一些基本知识点 那么,话不多说,开始主题的讲解吧: 首先,本人来解释下什么是Web: 概念: 使用浏览器进行访问的应用 ...

  9. 【转】详解web.xml中元素的加载顺序

    顺序为: context-param --> listeners --> filters --> servlets(如DispatcherServlet等) 详见<https: ...

  10. 详解C# 网络编程系列:实现类似QQ的即时通信程序

    https://www.jb51.net/article/101289.htm 引言: 前面专题中介绍了UDP.TCP和P2P编程,并且通过一些小的示例来让大家更好的理解它们的工作原理以及怎样.Net ...

随机推荐

  1. ViewPager引导页实现网络图片加载

    ViewPager引导页实现网络图片加载 最近在准备移动应用开发的比赛,看到一道题目,让我们加载网络图片当引导页,我太久没做了,就搜了一下,大多数是让你有多少张图片就新建多少个布局文件,这样文件多不说 ...

  2. Linux grep根据关键字匹配前后几行

    在Linux环境下,查看文件内容时,很多时候需要查看指定关键字的前后几行,如查看日志文件时,如果日志文件太大,想直接在Linux 终端中查看,可以grep 'partten' filename 进行过 ...

  3. make编译报错:fatal error: filesystem: 没有那个文件或目录 #include <filesystem>

    报错: fatal error: filesystem: 没有那个文件或目录 #include(filesystem) 解决方法一: 修改头文件 #include <experimental/f ...

  4. 数据结构单向链表——找到并输出倒数第k个结点的数据

    /********************************************************************************************** * fu ...

  5. PageOffice 在线编辑 office文件,回调父页面

    一.子页面调用父页面的方法 var value=window.external.CallParentFunc("ParentFunName(Arguments);");//父页面的 ...

  6. Javascript---时间加秒数得到新的时间

    <script> // 当前时间:curTime var curTime = new Date("2023-12-10 17:32:46"); // 当前时间加上XXX ...

  7. Django——启动项目时报错mysqlclient

    报错内容如下: Watching for file changes with StatReloader Exception in thread django-main-thread: Tracebac ...

  8. 鸿蒙极速入门(二)-开发准备和HelloWorld

    一.开发准备 本篇博客基于的系统版本:华为官方HarmonyOS版本3.1.OpenHarmony版本4.0Beta 开发语言 ArkTS语言(推荐) JS语言(支持) Java语言(已放弃支持) 从 ...

  9. wireshark常见使用技巧

    (1)wireshark根据报文不同字段排序 举例说明:现在有50000个1588 sync报文,我想根据报文的originalTimestamp(seconds)字段进行排序,该如何操作呢? 操作过 ...

  10. 字符型 ASCLL编码 转义字符

    字符(character) char 2字节   每一个字符的背后.都有一个数字做代表(对照,参照的表) 字符赋值 char cl = 'a';通过''单引号描述为字符赋值 整数赋值 char c2 ...