详解BASIC认证

2023-05-16

Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用。本文详细讲解BASIC认证的过程及原理。


BASIC认证流程:


在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份证的方法,当一个客户端向HTTP服务 器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。



客户端在接收到HTTP服务器的身份认证要求后,会提示用户输入用户名及密码,然后将用户名及密码以BASE64加密,加密后的密文将附加于请求信息中,如当用户名为admin,密码为:123456时,客户端将用户名和密码用“:”合并,并将合并后的字符串用BASE64加密为密文,并于每次请求数据时,将密文附加于请求头(Request Header)中。


HTTP服务器在每次收到请求包后,根据协议取得客户端附加的用户信息(BASE64加密的用户名和密码),解开请求包,对用户名及密码进行验证,如果用户名及密码正确,则根据客户端请求,返回客户端所需要的数据;否则,返回错误代码或重新要求客户端提供用户名及密码。



图解BASIC认证过程:


wKiom1gyliSTL0aLAAKQO3rXLNI345.png






1.  客户端向服务器请求访问受保护的数据,请求的内容可能是一个网页或者是一个其它的MIME类型,此时,假设客户端尚未被验证,则客户端提供如下请求至服务器:

Get /index.html HTTP/1.0
Host:
www.favccxx.com


2. 服务器向客户端发送验证请求代码401,服务器返回的数据大抵如下:

HTTP/1.0 401 Unauthorised
Server: SokEvo/1.0
WWW-Authenticate: Basic realm="favccxx.com"
Content-Type: text/html
Content-Length: xxx


3.  当符合http1.0或1.1规范的客户端(如IE,FIREFOX)收到401返回值时,将自动弹出一个登录窗口,要求用户输入用户名和密码。

wKioL1gymUfhEyYJAACJQe8mYpA209.png


4.  用户输入用户名和密码后,将用户名及密码以BASE64加密方式加密,并将密文放入前一条请求信息中,则客户端发送的第一条请求信息则变成如下内容:

Get /index.html HTTP/1.0
Host:www.favccxx.com
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxx

wKiom1gymXeAkZAqAAAx2WP-YZo215.png

注:xxxx....表示加密后的用户名及密码,Authorization = Base64.encode("admin:password");


5.  服务器收到上述请求信息后,将Authorization字段后的用户信息取出、解密,将解密后的用户名及密码与用户数据库进行比较验证,如用户名及密码正确,服务器则根据请求,将所请求资源发送给客户端。



BASIC认证优缺点


优点:

  • 使用非常简单

  • 开发和调试工作简单

  • 没有复杂的页面跳转逻辑和交互过程

  • 更利于发起方控制

缺点:

  • 安全性低,每次都需要传递用户名和密码,用户名和密码很大程度上存在被监听盗取的可能

  • 同时应用本地还需要保存用户名和密码,在应用本身的安全性来说,也存在很大问题

  • 开放平台服务商出于自身安全性的考虑(第三方可以得到该服务商用户的账号密码,对于服务商来说是一种安全隐患),未来也会限制此认证方式(Twitter已停止Basic Auth的支持)

  • 用户如果更改了用户名和密码,还需要重新进行密码校验的过程



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

详解BASIC认证 的相关文章

  • Http auth认证的两种方式Basic方式和 Digest认证

    Http Basic Auth 方式 当访问一个Http Basic Auth 网站的时候需要提供用户名 xff0c 密码 xff0c 否则会返回401 without authoration Http Basic Authenticati
  • Arduino文档阅读笔记-4 WHEEL ROBOT CAR BASIC EXAMPLE

    Arduino小车有很多种 xff0c 包括2个轮子 xff0c 4个轮子 都有 下面这个实例来做一个最基础的4轮小车 xff0c 下面将说明各个功能和代码 首先得先准备这样的一辆4个轮子的小车 再选这样的一个扩展板 xff1a 电机控制板
  • 接口测试 之 HTTP 1.1 认证之BASIC认证

    basic认证 介绍认证步骤步骤图解BASIC 认证的的缺点测试 xff1a 认证失败测试 xff1a 认证成功使用postman 如何测试basic认证接口 介绍 BASIC 认证 xff08 基本认证 xff09 是从HTTP 1 1
  • Http auth认证的两种方式Basic方式和 Digest认证

    Http Basic Auth 方式 当访问一个Http Basic Auth 网站的时候需要提供用户名 xff0c 密码 xff0c 否则会返回401 without authoration Http Basic Authenticati
  • Basic Auth(HTTP Auth)

    Basic Auth xff08 HTTP Auth xff09 Basic Auth简单点说明就是每次请求API时都提供用户的username和password 这种方式优点和缺点都很明显 优点 xff1a u 使用非常简单 xff0c
  • HTTP认证之基本认证——Basic(二)

    导航 HTTP认证之基本认证 Basic xff08 一 xff09 HTTP认证之基本认证 Basic xff08 二 xff09 HTTP认证之摘要认证 Digest xff08 一 xff09 HTTP认证之摘要认证 Digest x
  • 详解BASIC认证

    Basic 认证是HTTP 中非常简单的认证方式 xff0c 因为简单 xff0c 所以不是很安全 xff0c 不过仍然非常常用 本文详细讲解BASIC认证的过程及原理 BASIC认证流程 xff1a 在HTTP协议进行通信的过程中 xff
  • JAVA Http的Post请求传参添加Authorization Basic Auth验证

    PostMan添加Authorization验证 pom xml添加依赖包 lt dependency gt lt groupId gt org apache commons lt groupId gt lt artifactId gt c
  • AUTH:basic认证和digest认证

    Http authentication BASIC In the context of an HTTP transaction basic access authentication is a method for a web browse
  • 【SpringSecurity教程】认证 1.Basic认证

    前言 Basic 认证是在请求接口之前要输入账号密码 xff0c 是简单的Http验证模式 本章主要描述 xff1a SpringBoot如何整合Basic认证 后端Okhttp和前端Vue Axios如何请求Basic认证的接口 Spri
  • https请求+basic认证

    目录 1 工具类 SSLClient 2 工具类HttpsClientUtil 3 使用 1 工具类 SSLClient 此类可绕过https证书 import org apache http conn ClientConnectionMa
  • Linux下搭建Webdav(apache)

    环境 RHEL 5 4 x86 64 创建webdav 1 安装apache yum install httpd y 2 配置webdav vim etc httpd conf httpd conf
  • Windows Vista介绍概要

    正文 Windows Vista介绍概要 关键日程表 Beta 1 2005年7月27日 1 CTP 由2005年12月20日 Build 5270 開始 每兩至三個月推出新版本 Beta 2 2006年5月23日 Build 5384 4
  • Visual Studio 2005 官方使用教程

    http msdn microsoft com zh cn library ms165079 VS 80 aspx Visual Studio 入门
  • java基础知识

    java基础知识 1 常见的数据源 dbcp 半自动化操作 不能自己连接 c3p0 自动化操作 自动加载配置文件 并且自动配置设置到对象中 druid hikari 2 url pattern配置为 和 的区别 首先 可以匹配所有url 包
  • 编译qt的pc版本X11出错:Basic XLib functionality test failed!

    Basic XLib functionality test failed You might need to modify the include and library search paths by editin 这个错误主要是因为 X
  • 在ASP.NET中显示进度条

    在ASP NET中显示进度条 孟宪会之精彩世界 对于加载时间比较长的ASP NET页面 我们可以在客户端浏览器中显示进度条来显示页面正在装载 下面就是具体的实现过程 新建项目 名字为WebPortal 在项目类型中选择Visual C 项目
  • Python:BASIC 中是否有相当于中、右、左的词?

    我想做这样的事情 gt gt gt mystring foo gt gt gt print mid mystring Help 切片来救援 def left s amount return s amount def right s amou
  • 如何在 OpenOffice BASIC 宏中通过鼠标单击获取文档坐标

    背景 我想在我用鼠标单击或悬停的位置 使用按键激活时 粘贴 如 CTRL V 任何内容 最好是图像 形状 我不知道该怎么做获取我单击的文档 X Y 上的位置 Apache OpenOffice SDraw Document OpenOffi
  • 汇编指令陷阱有什么作用?

    当程序需要时 程序通常会发出软件陷阱 由操作系统提供服务 通用异常处理程序 操作系统确定陷阱的原因并做出响应 适当地 汇编指令 trap 和 BASIC 中的 TRAP 指令一样吗 答案似乎是肯定的 你能接受还是拒绝我的结论 不中断 的代码

随机推荐

  • C++ 标准程序库std::string 详解

    现在一般不再使用传统的char 而选用C 43 43 标准程序库中的string类 xff0c 是因为string标准程序和char 比较起来 xff0c 不必担心内存是否足够 字符串长度 等等 xff0c 而且作为一个类出现 xff0c
  • Lighttpd 搭建 Web 服务器

    背景 xff1a 公司项目用到了lighttpd xff0c 由于自己没有接触过 xff0c 所以做下记录 简介 xff1a Lighttpd 是一个德国人领导的开源Web服务器软件 xff0c 其根本的目的是提供一个专门针对高性能网站 x
  • lua中.和:的区别

    2019独角兽企业重金招聘Python工程师标准 gt gt gt lua中 和 都可以用于方法的声明和调用 和table配合使用 和 最大的不同点 xff0c 就是 xff1a 会把调用者自身 xff0c 传入到函数中 如下代码 xff1
  • 一个很有意思的玩意:FlightGear,开源飞机模拟器

    你一定很想知道开F22战机是什么感觉 xff0c 甚至梦想有一天自己也能驾驭着飞机在空中飞翔 现实生活中 xff0c 做飞行员可不是一件简单的事 xff0c 既然如此 xff0c 我们就别想那么多 xff0c 但有了FlightGear这个
  • 第二学期无人机操作师结业复习测试

    无人机操作师结业复习测试 姓名 xff1a 学号 xff1a 得分 xff1a xff08 本套试卷考试时间为90分钟 xff0c 共分选择题 判断题 填空题 问答题四大部分 xff0c 总分100分 xff09 一 选择题 xff08 共
  • 误删linux文件恢复

    Linux下文件误删除 xff0c 使用extundelete恢复测试过程 extundelete下载官网地址 xff1a https pkgs org download extundelete 给虚拟主机添加一块磁盘 xff0c 磁盘为
  • POJ训练计划1459_Power Network(网络流最大流/Dinic)

    解题报告 这题建模实在是好建 xff0c xff0c 好贱 xff0c 给前向星给跪了 xff0c 纯dinic的前向星居然TLE xff0c sad xff0c xff0c 回头看看优化 xff0c 矩阵跑过了 2A xff0c sad
  • WIN10下微信崩溃(已经是最新版)的解决方法

    问题症状 xff1a WIN10下运行最新版微信 xff08 CrashVersion 61 1644560715 xff09 微信运行错误 你的微信崩溃次数较多 xff0c 建议使用最新版本 xff0c 点击 34 确定 34 到官网 h
  • golang ----map按key排序

    实现map遍历有序 1 key有序 思路 xff1a 对key排序 xff0c 再遍历key输出value 代码如下 xff1a 既可以从小到大排序 xff0c 也可以从大到小排序 package main import 34 fmt 34
  • egg(102)--egg之用户登录 以及登录时候涉及的一些安全问题

    router router get 39 login 39 initMiddleware controller default pass login router post 39 pass doLogin 39 initMiddleware
  • 火狐浏览器添加MetaMask钱包和本地开启私有链开发

    火狐浏览器添加MetaMask钱包 因为对其配置了代理工具 xff0c 所以直接使用谷歌引擎搜索MetaMask钱包即可 第一次使用 xff0c 立即开始设置 点击我同意 xff0c 进行密码的创建 牢记助记词 xff0c 助记词及其关键
  • Cordova 打包签名 Android release app 过程详解及cordova创建app

    很久之前就想写这篇博客 xff0c 但是一直没有时间 xff0c 今天抽空来整理一下 xff0c 总结一下cordova的创建 打包 签名apk 对于cordova所需的打包环境 xff0c 如node cordova的安装 xff0c 这
  • MySQL【Update误操作】回滚

    1 2 3 4 5 6 7 8 9 10 11 12
  • dart常用正则表达式

    电话号码 xff1a 1开头 xff0c 后面10位数字 static bool isPhone String input RegExp mobile 61 new RegExp r span class hljs string 34 1
  • Less编写函数(mixin/@functions)的小技巧分享

    技术背景 开发移动端Web项目的时候 xff0c 有一种弹性布局的方案是基于rem开发项目 简单来说 xff0c 应用淘宝 lib flexible xff08 虽说有新方案vw xff0c 暂时先不讨论 xff09 后 xff0c 会根据
  • 中科院总共有多少计算机研究所?

    我说的都是招计算机的所哈 北京的 xff1a 中科院计算所 中科院软件所 中科院网络中心 中科院信息工程学院 xff08 其实就是中科院研究生本部 xff09 中科院计算与通信工程学院 中科院自动化所 中科院高能所 还有光电 生物的两个所招
  • iOS objc_setAssociatedObject 关联对象的学习

    今天看了FDTemplateLayoutCell的源码 xff0c 类别里面相当频繁使用了关联对象 xff0c 做笔记 xff01 xff01 xff01 学套路 主要函数 xff1a void objc setAssociatedObje
  • 迭代器、生成器

    迭代器 通过迭代器取值优缺点 xff1a 优点 xff1a 不依赖索引 xff0c 完成取值 缺点 xff1a 不能计算长度 xff0c 不能指定位取值 只能从前往后逐一取值 可迭代对象 可迭代对象 有 iter 方法的对象 xff0c 调
  • 使用androidstudio 分析内存泄漏

    分析内存泄漏 http www jianshu com p c49f778e7acf 转载于 https www cnblogs com sunfb p 5086317 html
  • 详解BASIC认证

    Basic 认证是HTTP 中非常简单的认证方式 xff0c 因为简单 xff0c 所以不是很安全 xff0c 不过仍然非常常用 本文详细讲解BASIC认证的过程及原理 BASIC认证流程 xff1a 在HTTP协议进行通信的过程中 xff