接口测试 之 HTTP 1.1 认证之BASIC认证

2023-05-16

basic认证

  • 介绍
    • 认证步骤
    • 步骤图解
    • BASIC 认证的的缺点
    • 测试:认证失败
    • 测试:认证成功
    • 使用postman 如何测试basic认证接口

介绍

BASIC 认证(基本认证)是从HTTP/1. 1 就定义的认证方式,是Web服务器与通信客户端之间进行的认证

认证步骤

步骤1:当请求的资源需要 BASIC 认证时,服务器会随状态码 401 Authorization Required,返回 WWW-Authenticate 首部字段(响应头)的响应。该字段内包含认证的方式(BASIC)及Request-URI 安全域字符串(realm)。

步骤2:接收到状态码 401 的客户端为了通过 BASIC 认证,需要将用户ID及密码发送给服务器。发送的字符串内容是由用户名 ID 和密码构成,两者中间以冒号(:)连接后,再经过 Base64 编码处理。

假设用户 ID 为 guest,密码是 guest,连接起来形成 “guest:guest” 这样的字符串。然后经过 Base64 编码成 Z3Vlc3Q6Z3Vlc3Q=。把这个字符串前面拼接 Baisc 形成 “Basic Z3Vlc3Q6Z3Vlc3Q=”,然后把这个字符串写入首部字段 Authorization 后,发送请求。

当用户端为浏览器时,一个仅需要输入用户 ID 和密码即可,浏览器会自动完成 Base64 编码的工作,并再前面添加 “Basic” 前缀。
  
步骤3:接收到包含首部字段 Authorization 请求的服务器,会对认证信息的正确性进行验证。如果验证通过,则返回一条包含 Request-URI 资源的响应。

步骤图解

在这里插入图片描述

BASIC 认证的的缺点

1)BASIC 认证虽然采用 Base64 密码方式,但这不是加密处理。不需要任何附加信息即可对其进行解码。换言之,由于明文解码后就是用户名 ID 和密码,再 HTTP 等非加密通信线路上进行 BASIC 认证的过程中,如果被人窃听,被盗的可能性极高。

所以,BASIC 认证需要配合HTTPS来保证信息传输的安全。

2)即使密码被强加密,第三方仍可通过加密后的用户名和密码进行重放攻击

3)如果想再进行一次 BASIC 认证时,一般的浏览器却无法实现认证注销操作。所以,BASIC 认证使用上不够灵活,且达不到多数 Web 网站期望的安全性等级,因此并不常用。

测试:认证失败

在这里插入图片描述

测试:认证成功

在这里插入图片描述

认证成功后,访问其他资源,浏览器自动添加 Authorization 请求头

在这里插入图片描述

使用postman 如何测试basic认证接口

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口测试 之 HTTP 1.1 认证之BASIC认证 的相关文章

  • AWS ALB 截断 HTTP 响应

    我有一个带有目标组的 ALB 和运行 PHP API 的 ECS 集群 我正在尝试查询 API 以获得 CSV 响应 但如果请求通过 ALB 我会得到被截断的结果 当我通过 SSH 连接到运行集群的 EC2 实例并尝试手动运行curl 通过
  • 是否可以在ajax get请求中获取页面的一部分?

    我知道我们可以在向服务器发出 GET 请求时获取整个页面 但是如果我只对该页面上的一个特定 div 感兴趣 或者更准确地说对其内容感兴趣 该怎么办 这里唯一的选择是获取整个页面 例如使用 jquery find 从中获取 div 内容吗 或
  • ReverseProxy取决于golang中的request.Body

    我想构建一个 http 反向代理 它检查 HTTP 主体 然后将 HTTP 请求发送到它的上游服务器 你怎么能在 Go 中做到这一点 初始尝试 如下 失败 因为 ReverseProxy 复制传入请求 修改它并发送 但正文已被读取 func
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • 除了 GET 和 POST 之外,如何从浏览器向 RESTful 应用程序发送任何内容?

    我没有得到 RESTful 的东西 是的 我知道如何从浏览器向我的应用程序发送 GET 请求 这是通过 URL 链接 a href user someone 并且还可以通过form方法发送POST请求 a
  • 将 HttpApi 与 I/O 完成端口结合使用

    我刚刚偶然发现了微软的HTTP 服务器 API http msdn microsoft com en us library aa364510 28v vs 85 29 aspx 简介中写道 HTTP 服务器 API 使应用程序能够通过 HT
  • 如何确定服务器是否支持 Range 标头?

    我一直在尝试使用 Range 标头值从特定点流式传输音频 但我总是从一开始就得到歌曲 我正在通过程序执行此操作 因此不确定问题是否出在我的代码中或服务器上 如何确定服务器是否支持 Range 标头参数 Thanks 方式HTTP规范 htt
  • 如何禁用 HTTP 的 HSTS 标头?

    我已将以下内容插入到我网站的 htaccess 中 以便能够访问HSTS预加载列表 https hstspreload appspot com
  • 如何增加asp classic的请求接受限制

    我从java小程序向asp classic发送post请求 我在此请求中发送非常大的数据 即 csv 数据 当此请求中的字符数增加并超过 138000 时 asp 不接受该请求 java 小程序给出 500 错误 所以有人可以告诉我如何才能
  • 如何使用批处理脚本调用的curl 获取http post 请求的响应代码?

    我正在努力为从我们的工具之一发送 http post 请求提供支持 该工具基本上通过 http 请求执行作业 实现此目的的方法是该工具使用多个参数调用 RunScript bat 该脚本解析这些参数并在验证后发出curl post 请求 P
  • Chrome 开发工具无法显示响应,即使返回的内容具有标题 Content-Type:text/html;字符集=UTF-8

    为什么我的 Chrome 开发者工具显示 无法显示响应数据 当返回的内容是text html类型时响应 在开发者工具中查看返回的响应的替代方法是什么 我认为只有当您选中 保留日志 并且您在导航离开后尝试查看先前请求的响应数据时 才会发生这种
  • ASP.NET 中 HTTP 缓存相关标头的有效含义

    我正在 ASP NET 2 0 中开发一个 Web 应用程序 其中涉及通过资源处理程序 ashx 提供图像 我刚刚实现了处理缓存标头和条件 GET 请求 这样我就不必为每个请求提供所有图像 但我不确定我是否完全理解浏览器缓存发生了什么 图像
  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • Django HTTPS 和 HTTP 会话

    我使用 Django 1 1 1 和 ssl 重定向中间件 通过 HTTPS 创建的会话数据 身份验证等 在站点的 HTTP 部分中不可用 无需将整个站点设置为 HTTPS 即可使其可用的最佳方法是什么 这是设计使然 您无法轻易更改 当通过
  • 最适合“正在进行的作业”的 HTTP 状态代码

    向客户端提供的最合适的 HTTP 状态代码是什么 表示 您的请求很好 但仍在进行中 请稍后在完全相同的位置回来查看 例如 假设客户端提交初始请求以启动繁重的查询 服务器立即返回一个 URL 客户端可以定期轮询该 URL 以获取结果 如果客户
  • Flutter http请求上传mp3文件

    我使用这个 api 上传 mp3 文件 使用这种方法 Future
  • 注册期间现有电子邮件的 422 或 409 状态代码

    我正在构建 RESTful API 遇到了一种情况 在用户注册期间 如果电子邮件已存在 则在422 and 409哪个http响应代码有意义 我浏览过类似的one https stackoverflow com questions 9269
  • put方法中的Angularjs文件上传不起作用

    我有一个简单的待办事项应用程序 我试图在其中上传照片和单个待办事项 现在我已经创建了这个工厂函数来负责待办事项的创建 todosFactory insertTodo function todo return http post baseUr
  • 尝试使用 php 发送 POST 请求,无论我做什么,我都会收到“HTTP ERROR 500”

    为了发出 HTTP 请求 有人建议我尝试使用 PHP 并给了我一段代码 url https example com dashboard api data array to gt PHONE NUMBER from gt SENDER ID
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史

随机推荐

  • C++如何获取当前时间

    导读 文章首先介绍了使用C库的接口来获取当前时间的方法 xff0c 然后介绍了使用C 43 43 11标准库中的函数来获取当前时间的方法 此外 xff0c 文章还介绍了使用函数strftime来格式化时间字符串的方法 xff0c 并列举了常
  • Java笔记(一):volatile、synchronized关键字

    volatile关键字 volatile字面意思为易变的 不稳定的 xff0c 事实上也正是如此 这个关键字的作用就是告诉编译器 xff0c 只要是被此关键字修饰的变量都是易变的 xff0c 不稳定的 主要是volatile所修饰的变量是直
  • 读取cv.VideoCapture(0)的frame帧转变为PIL.Image图片格式时遇到的坑

    在项目中遇到一个问题是想将VideoCapture 读到的frame图片转变成PIL的Image图片格式 坑1 xff1a BGR还是RGB模式 xff1f 兴冲冲地在在网上找到一段代码 xff0c 将opencv中的imread 图像转成
  • linux命令记录

    linux三剑客 xff1a grep xff0c awk xff0c sed 1 grep命令 2 awk命令 linux中的awk命令是一种处理文本的工具 AWK命名来源于三位创始人的家族名称首字母 可以分行对文本进行处理 其命令格式如
  • [joysticker]使用Ubuntu读取USB手柄/方向盘的输出控制

    摘要 xff1a 在淘宝上买到的游戏手柄 USB卖家只给了Windows下的驱动 xff0c 本来以为Ubuntu下没有驱动 xff0c 没想到网上早已经有人用cpp开发出了USB手柄的驱动 xff0c 搜索很多博客的方法终于从手柄拿到数据
  • [numpy问题]The truth value of an array with more than one element is ambiguous.

    问题描述 xff1a 在进行Hough圆变换时 xff0c 需要输出一个圆的坐标 xff1a circles 61 cv2 span class hljs preprocessor HoughCircles span canny cv2 s
  • [PyQt5]点击主窗口弹出另一个窗口

    1 先使用Qt designer设计两个窗口 xff0c 一个是主窗口 xff0c 一个是子窗口 其中主窗口是新建 Main Window 子窗口是Dialog窗体 两个窗口不能是同一类型 否则会崩溃 并保存为EyeTracking mai
  • matlab的for循环

    https blog csdn net zhyoulun article details 78606382
  • 【总结】自然语言处理(NLP)算法:概述与分类

    摘要 xff1a NLP概述 主要参考自然语言处理 xff08 NLP xff09 知识结构总结和知乎上的一些问答 目录 NLP界神级人物NLP知识结构 1 概述2 形式语言与自动机3 语言模型4 概率图模型 xff0c 生成模型与判别模型
  • 【Win10】【开始菜单打不开】任务栏修复

    真是 xff0c 朋友说一句 xff0c 电脑出问题了你有本事别重装系统 我记住了 作为一个 强迫症患者 xff0c 最近电脑C盘内存快满以及翻墙代理污染了一部分ipv4网站就让我很毛 xff0c 很想重装系统 但是我忍住了 根据网上的教程
  • 「PyQt5」使用Qtdesigner设计好界面后写一个驱动程序

    使用Python写界面最方便的就是Pycharm 43 Qtdesigner 用Qt designer画用户界面比较容易 xff0c 保存成 ui文件然后转化成 py即可 这里 xff0c 我们展示下一步运行程序让这个界面显示 xff1a
  • 「git」Linux下将文件都上传到github上

    最近在整理自己平时写的一些代码 xff0c 第一选择就是上传到github上作为一个备份和说明 xff0c 防止自己遗忘 上次用版本控制已经是好几个月前了 xff0c 所以难免有些生疏 所以就从新按照CSDN大佬们的基础教程重新操作了一遍
  • 高质量嵌入式Linuxc编程

    第一天 xff1a 根目录 命令 注意 xff1a 命令和参数要区分开 xff0c 他们之间要有空格 cd 进入目录 ls 列举目录内容 ls a 列举所有文件包括隐藏的文件 所有隐藏的文件都是以点 xff08 xff09 开始的 ls l
  • 读写位宽不同的FIFO,数据输入输出顺序是怎么样的?BRAM又如何呢?

    原文地址 xff1a https wenku baidu com view 7d7cf156284ac850ac0242b6 html 对于BRAM xff1a 1 xff09 写位宽小于读位宽 xff1a 先入存低位 xff0c 后入存高
  • apache httpd在centos上手动安装

    Apache Bench手动安装 简介httpd及依赖包安装ab扩充最大并发量 简介 apache bench简称 xff08 ab xff09 可以做压力测试 xff0c 本文介绍手动安装方法 httpd及依赖包安装 以下包因为存在依赖关
  • Cartographer最新版完整安装教程(2020.8.7成功安装)

    2020 8 7更 xff1a 春节之后重装了系统 xff0c 重新安装Cartographer又遇到了困难 xff0c 发现之前的教程naive xff0c 历尽千辛万苦今天终于安装成功 xff0c 而且更加简单方便 xff0c 给大家作
  • 没有可用的软件包××,但是它被其他的软件包引用了——解决方法

    在ubuntu下安装gcc xff1a sudo apt install gcc 谁知这么简单的命令居然不成功 解决方法 xff1a sudo apt get update 待更新完毕后再次输入安装命令即可
  • MapReduce编程之连接Join

    本文笔记整理自 Hadoop海量数据处理 xff1a 技术详解与项目实战 范东来 一 设计思路 HDFS上存放两个文件 xff0c 一个记录了学生基本信息 xff08 姓名 xff0c 学号 xff09 xff0c 文件名 student
  • MapReduce编程之二次排序

    本文笔记整理自 Hadoop海量数据处理 xff1a 技术详解与项目实战 范东来 一 二次排序 二次排序就是先按某一列先进行排序 xff0c 然后在此基础上再对另一列排序 xff08 参看如下表数据 xff09 待排序数据 xff1a 第一
  • 接口测试 之 HTTP 1.1 认证之BASIC认证

    basic认证 介绍认证步骤步骤图解BASIC 认证的的缺点测试 xff1a 认证失败测试 xff1a 认证成功使用postman 如何测试basic认证接口 介绍 BASIC 认证 xff08 基本认证 xff09 是从HTTP 1 1