HTTP Basic Access Authentication Schema
HTTP Basic Access Authentication Schema
- 背景
- 介绍
- 流程
- 安全缺陷
- 参考
背景
本文内容大多基于网上其他参考文章及资料整理后所得,并非原创,目的是为了需要时方便查看。
介绍
HTTP Basic Access Authentication Schema,HTTP 基本访问认证模式,是 HTTP 1.0 引入的一种 基于 challenge-response 认证机制的身份认证方案。
challenge-reponse:当客户端首次访问受保护资源时,服务器会向客户端发送一个 challenge,客户端根据 challenge 信息做出对应的 response。
HTTP Basic Access Authentication 基于以下模型:客户端必须使用每个域(realm)对应的用户ID和密码进行认证。因此 HTTP Basic Access Authentication 包含三个关键要素:user ID(用户ID)、password(密码)、realm(域)。其中 realm 是服务器分配的一个字符串,用于区分受保护资源所属的不同域。只有当服务器能够验证请求URI对应域的用户ID和密码时,服务器才会为请求提供服务,没有其他可选的认证参数。
流程
- 客户端请求访问受保护资源;
- 服务端接收到请求后,在请求头部(HTTP Request Headers)中未找到
Authorization
,返回401 Unauthorized
,返回响应头(HTTP Response Headers)中带有WWW-Authenticate
,格式如下:
这就是服务器向客户端发送的 challenge,其中WWW-Authenticate: Basic realm="Secure Area"
Basic
指明服务器需要的访问认证方式,realm 是服务器分配的一个字符串,用于标识请求 URI 对应的受保护域。WWW-Authenticate
中至少包含一个 challenge。 - 客户端根据接收到的服务器响应中
WWW-Authenticate
信息得知需要执行Basic
访问认证,如果客户端是浏览器,则会自动弹出一个登录窗口,输入用户ID和密码后提交认证请求。客户端发送的认证请求中包含Authorization
头信息,格式如下:
这就是客户端向服务器发送的 response,其中Authorization: Basic YWRtaW46MDAwMDAw
Basic
指明客户端遵从的访问认证方式,后面紧跟一个 Base64 编码值,通过以下公式计算所得:base64(userid:password)
- 服务端收到请求后执行验证,成功返回
200 OK
,失败返回401 Unauthorized
:- 根据用户请求的资源地址确定资源对应的 realm;
- 解析请求头中
Authorization
,获得用户ID和密码; - 判断用户是否有访问 realm 的权限;
- 验证用户ID和密码是否匹配。
安全缺陷
- 用户ID和密码通过明文传输,如果未启用传输层加密,则密码可轻易被中间人截获;
- 认证一旦通过就无法随时吊销。
参考
RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication
相关文章:

HTTP Basic Access Authentication Schema
HTTP Basic Access Authentication Schema 背景介绍流程安全缺陷参考 背景 本文内容大多基于网上其他参考文章及资料整理后所得,并非原创,目的是为了需要时方便查看。 介绍 HTTP Basic Access Authentication Schema,HTTP 基本访问认证模式…...
#职场发展#其他
一闪论文是目前市场上一款非常靠谱的论文写作工具,不仅可以帮助用户快速完成论文撰写,还能对文章进行查重降重,确保内容原创性。从用户的角度来看,一闪论文确实是一个非常方便、实用的工具,能够大大提高写作效率&#…...

【Text2SQL 论文】评估 ChatGPT 的 zero-shot Text2SQL 能力
论文:A comprehensive evaluation of ChatGPT’s zero-shot Text-to-SQL capability ⭐⭐⭐⭐ arXiv:2303.13547 这篇论文呢综合评估了 ChatGPT 在 zero-shot Text2SQL 任务上的表现。 dataset 使用了 Spider、Spider-SYN、Spider-DK、Spider-Realistic、Spider-CG…...
安卓手机APP开发___设置闹钟
安卓手机APP开发___设置闹钟 目录 概述 设置不精确闹钟 在特定时间后发出闹钟 在特定时间范围内触发闹钟 以大致有规律的时间间隔响起重复闹钟 设置精确的闹钟 系统会在未来的某个精确时刻调用精确闹钟。 可能不需要精确闹钟的用例 设置精确闹钟的方法 系统资源消耗…...

如何评价GPT-4o
目录 1.概述 2.对比分析 2.1.版本 2.2.区别 2.2.1.技术方面的差异 2.2.2.性能提升 2.2.3.应用领域扩展 2.2.4.对未来发展的影响 3.技术能力 4.个人感受 1.概述 GPT-4o的发布无疑是人工智能领域的一次重要进展。作为GPT-4的升级版本,GPT-4o不仅在处理速度…...
自定义窗口事件循环系统
1.定义事件类型,mouse,wheel,drag,view。已处理的事件,accept需设置为true,防止重叠热区继续穿透。记录事件生成时间,全局位置和当前帧窗口下位置。 2.定义事件响应系统interactionSystem&…...
随机森林算法教程(个人总结)
背景 随机森林(Random Forest)是一种集成学习方法,主要用于分类和回归任务。它通过构建多个决策树并将其结果进行集成,提升模型的准确性和鲁棒性。随机森林在处理高维数据和防止过拟合方面表现出色,是一种强大的机器学…...

解决Android studio 一直提示下载gradle-xxx-all.zip问题
今天用AndroidStdiod打开一个新工程的时候,发现项目一直卡在正在下载gradle-xxx-all.zip的任务上,网络出奇的慢,即使配了VPN也无济于事,于是按照以往经验:将gradle-xxx-all.zip下载到.gradle\gradle\wrapper\dists目录…...

3DEXPERIENCE DELMIA Role: RVN - Robotics Virtual Commissioning Analyst
Discipline: Robotics Role: RVN - Robotics Virtual Commissioning Analyst 通过准确地模拟连接到PLC程序的机器人、设备和传感器,在制造虚拟孪生上执行虚拟调试情景 为任何机器人角色的多周期情景创建传感器,生成和变换零件启用 PLC 程序的虚拟验证和…...

js知识点之闭包
闭包 什么是闭包 闭包,是 JavaScript 中一个非常重要的知识点,也是我们前端面试中较高几率被问到的知识点之一。 打开《JavaScript 高级程序设计》和《 JavaScript 权威指南》,会发现里面针对闭包的解释各执一词,在网络上搜索关…...

LORA微调,让大模型更平易近人
技术背景 最近和大模型一起爆火的,还有大模型的微调方法。 这类方法只用很少的数据,就能让大模型在原本表现没那么好的下游任务中“脱颖而出”,成为这个任务的专家。 而其中最火的大模型微调方法,又要属LoRA。 增加数据量和模…...
LabVIEW全自动样品处理系统有哪些优势?
基于LabVIEW的全自动样品处理系统在现代科研和工业应用中展现出显著的优势,其在数据采集、分析和控制方面的性能使其成为提高效率和精度的理想选择。以下是该系统的详细优势: 高效自动化 LabVIEW的图形化编程语言极大地简化了自动化流程的开发。用户可…...
shell脚本操作http请求的返回值——shell处理json格式数据
日常工作中,我们经常会遇到http请求会返回大量格式固定的数据,而我们只需要其中的一部分,那么怎么提取我们想要的字段呢。 这里会介绍一种用shell脚本处理http请求返回,或者处理json格式数据的方式。 这里我们用到了 jq这个强大的…...
leetcode力扣 300. 最长递增子序列 II
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1&#…...
C++_vector简单源码剖析:vector模拟实现
文章目录 🚀1.迭代器🚀2.构造函数与析构函数⚡️2.1 默认构造函数vector()⚡️2.2 vector(int n, const T& value T())⚡️内置类型也有构造函数 ⚡️2.3 赋值重载operator⚡️2.4 通用迭代器拷贝⚡️2.5 vector(initializer_list<T> il)⚡️…...

第3章 数据链路层
王道学习 考纲内容 (一)数据链路层的功能 (二)组帧 (三)差错控制 检错编码;纠错编码 (四)流量控制与可靠传输机制 流量控制、可靠传输与滑动窗口…...

使用OrangePi KunPeng Pro部署AI模型
目录 一、OrangePi Kunpeng Pro简介二、环境搭建三、模型运行环境搭建(1)下载Ollama用于启动并运行大型语言模型(2)配置ollama系统服务(3)启动ollama服务(4)启动ollama(5)查看ollama运行状态四、模型部署(1)部署1.8b的qwen(2)部署2b的gemma(3)部署3.8的phi3(4)部署4b的qwen(5)部…...

SpringMVC 数据映射VC
从 view 层发送请求到Controller,在Controller中获取参数: 在不输入值时会报400,参数错误 在不输入值时num默认为null 没有找到对应标签名称叫nums的,输入任何值时都报400 设置required默认值为false,即使表单没有nums…...

Clickhouse Bitmap 类型操作总结—— Clickhouse 基础篇(四)
文章目录 创建 Bitmap 对象Bitmap 转换为整数数组计算总数(去重)值指定start, end 索引生成子 Bitmap指定 start 索引和数量限制生成子 Bitmap指定偏移量生成子 Bitmap是否包含指定元素两个 Bitmap 是否存在相同元素一个是否为另一个 Bitmap 的子集求最小…...

202474读书笔记|《我自我的田渠归来》——愿你拥有向上的力量,一切的好事都应该有权利发生
202474读书笔记|《我自我的田渠归来》——愿你拥有向上的力量 《我自我的田渠归来》作者张晓风,被称为华语散文温柔的一支笔,她的短文很有味道,角度奇特,温柔慈悲而敏锐。 很幸运遇到了这本书,以她的感受重新认识一些事…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...