「 典型安全漏洞系列 」11.身份验证漏洞详解

身份验证是验证用户或客户端身份的过程。网站可能会暴露给任何连接到互联网的人。这使得健壮的身份验证机制成为有效的网络安全不可或缺的一部分。

1. 什么是身份验证

身份验证即认证,是验证给定用户或客户端身份的过程。身份验证漏洞使攻击者能够访问敏感数据和功能。它们还暴露了额外的攻击面以供进一步利用。

身份验证漏洞的影响非常严重。如果攻击者绕过身份验证或强行进入另一个用户的帐户,他们就可以访问被泄露帐户的所有数据和功能。如果他们能够危害高特权帐户(如系统管理员),他们就可以完全控制整个应用程序,并有可能访问内部基础设施。

1.1. 身份验证和授权的区别

身份验证是验证用户真实身份的过程,确认你是谁的过程。
授权则是验证用户是否被允许做一些事情。

1.2. 身份验证的三种主要类型

三种基本的身份验证方法、类型或因素:

  • Type 1: 你知道什么?如密码、个人身份识别码PIN,所以类型1也被称为“知识因素”
  • Type 2: 你拥有什么?如智能卡、硬件令牌(Token)或存储卡、U盘。这些有时被称为“占有因素”
  • Type 3: 你是谁或你做了什么?这些有时被称为“内在因素”
    • 你是谁?如指纹、声纹、视网膜图案、虹膜图像、掌纹等。
    • 你做了什么?如签名、击键动态,也称为行为生物识别。

身份验证机制依赖于一系列技术来验证这些因素中的一个或多个。

2. 漏洞产生原因

  • 身份验证机制很弱,它们无法防止暴力攻击
  • 实现中的逻辑缺陷或糟糕的编码允许攻击者完全绕过身份验证机制,这也被称为『失效的身份验证』
    在这里插入图片描述
    在许多领域,逻辑缺陷会导致网站出现意外行为,这可能是安全问题,也可能不是安全问题。然而,由于身份验证对安全至关重要,有缺陷的身份验证逻辑很可能会使网站面临安全问题。

3. 漏洞防御

身份验证是一个复杂的话题,正如我们所展示的,不幸的是,弱点和缺陷很容易渗透进来。概述你可以采取的每一种措施来保护你自己的网站显然是不可能的。但是,我们应该始终遵循以下几个一般原则:

  • 注意保护用户凭据:如果你无意中向攻击者泄露了一组有效的登录凭据,即使是最强大的身份验证机制也是无效的。
  • 安全性不要依赖用户:严格的身份验证措施通常需要用户付出一些额外的努力。人性使得一些用户几乎不可避免地会找到拯救自己的方法。因此需要尽可能强制执行安全行为。
  • 暴力防护:考虑到构建暴力攻击是多么简单,确保采取措施防止或至少破坏任何暴力登录的尝试是至关重要的。
  • 从设计、开发到测试,三重检查验证逻辑:彻底审核任何验证或验证逻辑以消除缺陷绝对是稳健身份验证的关键
  • 多因素身份验证:虽然多因素身份验证可能不适用于每个网站,但如果操作得当,它比单独基于密码的登录安全得多。请记住,验证同一因素的多个实例不是真正的多因素身份验证。通过电子邮件发送验证码本质上只是一种更冗长的单因素身份验证形式。

4. 参考

[1] https://portswigger.net/web-security/authentication
[2] https://portswigger.net/web-security/authentication/securing


推荐阅读:
「 典型安全漏洞系列 」10.跨域资源共享CORS漏洞详解
「 典型安全漏洞系列 」09.权限提升漏洞详解
「 典型安全漏洞系列 」08.文件上传漏洞详解
「 典型安全漏洞系列 」07.OS命令注入详解
「 典型安全漏洞系列 」06.路径遍历(Path Traversal)详解
「 典型安全漏洞系列 」05.XML外部实体注入XXE详解
「 典型安全漏洞系列 」04.服务器端请求伪造SSRF详解
「 典型安全漏洞系列 」03.跨站请求伪造CSRF详解
「 典型安全漏洞系列 」02.SQL注入详解
「 典型安全漏洞系列 」01.跨站脚本攻击XSS详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络基础 (三) —— Socket

文章目录 Socket 编程基本概念Socket背景Socket 为了解决什么问题 socketsockaddr结构sockaddrsockaddr_insockaddr 和 sockaddr_in 的关系sockaddr_un 示例代码 🎖 博主的CSDN主页:Ryan.Alaskan Malamute 📜 博主的代码仓库主页 [ Gitee ]&…

【MySQL】数据操作语句(DML)

👦个人主页:Weraphael ✍🏻作者简介:目前学习计网、mysql和算法 ✈️专栏:MySQL学习 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

【论文通读】AgentStudio: A Toolkit for Building General Virtual Agents

AgentStudio: A Toolkit for Building General Virtual Agents 前言AbstractMotivationFramework评估GUI GroudingReal-World Cross-Application Benchmark Suite Conclusion 前言 来自昆仑万象的一篇智能体环境数据大一统框架工作,对未来计算机智能体的发展具有指…

FPGA常用IP核之FIFO学习

IP核是FPGA芯片公司提供的逻辑功能块,在FPGA芯片中可以进行优化和预先配置,可以直接在用户设计的程序中使用,应用范围很广。在FPGA设计开发过程中使用IP核,可以大大的缩短开发周期,高度优化的IP核可以使FPG开发工程师专…

前端三剑客 —— CSS (第六节)

目录 内容回顾: 弹性布局属性介绍 案例演示 商品案例 布局分析 登录案例 网格布局 内容回顾: 变量:定义变量使用 --名称:值; 使用变量: 属性名:var(--名称)&a…

虚拟主机、VPS主机和云服务器的区别

对于每个建站新手来说,首先要解决的就是服务器购买的问题,目前市面有很多类型的服务器,常见的有:阿里云、腾讯云、Vultr云服务器,也有RackNerd、Cloudways等提供的VPS,还有SiteGround、ChemiCloud 、 Hosti…

数据结构之堆底层实现的循序渐进

题外话 把没写的都补回来! 正题 堆 概念 堆是一棵完全二叉树,因此可以层序的规则采用顺序的方式来高效存储, 大根堆:指根结点比左右孩子都大的堆 小根堆:指根结点比左右孩子都小的堆 性质 1.堆中某个节点的值总是不大于或不小于其父节点的值 2…

鸿蒙OS元服务开发:【(Stage模型)设置应用主窗口】

一、设置应用主窗口说明 在Stage模型下,应用主窗口由UIAbility创建并维护生命周期。在UIAbility的onWindowStageCreate回调中,通过WindowStage获取应用主窗口,即可对其进行属性设置等操作。还可以在应用配置文件中设置应用主窗口的属性&…

每日一题(leetcode1026):节点与其祖先的最大差值--dfs

考虑到只能计算祖先之间的节点差而不能计算兄弟之间的节点差,所以思考使用dfs来解决该题。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), ri…

嵌入式开发学习---(部分)数据结构(无代码)

数据结构 为什么学习数据结构? 1)c语言告诉如何写程序,数据结构是如何简洁高效的写程序 2)遇到一个实际问题,需要写程序去实现相应功能,需要解决那两个方面的问题? 如何表达数据之间的逻辑规律…

背包问题---

一、背包模型 有一个体积为V的背包,商店有n个物品,每个物品有一个价值v和体积w,每个物品只能被拿一次,问能够装下物品的最大价值。 这里每一种物品只有两种状态即"拿"或"不拿". 设状态dp[i][j]表示到第i个物品为止,拿的物品总体积为j的情况下的最大价…

一、持续集成介绍

持续集成介绍 一、什么是持续集成二、持续集成的流程三、持续集成的组成要素四、持续集成的好处 一、什么是持续集成 持续集成(CI)指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可…

LeetCode:1483. 树节点的第 K 个祖先(倍增 Java)

目录 1483. 树节点的第 K 个祖先 题目描述: 实现代码与解析: 倍增 原理思路: 1483. 树节点的第 K 个祖先 题目描述: 给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出&#…

软件测试——黑盒测试

黑盒测试也就是针对功能进行测试,白盒测试就是后端根据自己的代码逻辑进行一下自测,灰盒测试就是黑盒和白盒的混合测试。 1.黑盒测试主要发现以下类型的错误 对比需求规格说明书功能遗漏或者不一致。 接口错误 数据库连接访问错误 效率不高&#xff…

【好书推荐-第十四期】《 互联网大厂晋升指南:从P5到P9的升级攻略》

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号:洲与AI。 🎈 本文专栏:本文收录…

第八讲 Sort Aggregate 算法

我们现在将讨论如何使用迄今为止讨论过的 DBMS 组件来执行查询。 1 查询计划【Query Plan】 我们首先来看当一个查询【Query】被解析【Parsed】后会发生什么? 当 SQL 查询被提供给数据库执行引擎,它将通过语法解析器进行检查,然后它会被转换…

机器人力觉控制(力源)原理及力矩传感器性能分析

机器人力控原理及其性能分析 在机器人的操作任务中,处理机器人和环境之间的物理接触是非常重要的。由于机器人系统的复杂性和不确定性,纯运动控制往往是不够的,因为即使是最精确的模型也无法完全准确地预测所有可能的情况。 当机器人在与环境…

arm开发板移植工具mkfs.ext4

文章目录 一、前言二、手动安装e2fsprogs1、下载源码包2、解压源码3、配置4、编译5、安装 三、移植四、验证五、总结 一、前言 在buildroot菜单中,可以通过勾选e2fsprogs工具来安装mkfs.ext4工具: Target packages -> Filesystem and flash utilit…

vue3中mars3d通过滑动条去改变地图图层的透明度

效果图 加滑动条 因为我这个存在单选框,在点击滑动条的时候 会出现将单选框选中的问题,所以用了一个div把滑动条包裹起来并加了冒泡 changeLiveSituationBg方法 // 改变底图显示颜色 val是我点击这个单选框对应值 const changeLiveSituationBg va…

5G智慧地铁数字孪生可视化平台,推进铁路行业数字化转型

随着科技的快速发展,5G智慧地铁数字孪生可视化平台正逐渐成为铁路行业数字化转型的重要推动力。巨蟹数科数字孪生平台集成了5G通信技术、大数据分析、云计算和人工智能等先进技术,通过构建数字孪生模型,实现对地铁运营全过程的实时监控、预测…