首页 > 其他分享 >【认证机制】1-Http Basic Auth

【认证机制】1-Http Basic Auth

时间:2022-11-26 15:34:02浏览次数:62  
标签:编码 Http Auth 认证 密码 信息 Basic

一、简介

HTTP Basic Auth是HTTP协议提供的一种简单的挑战应答机制,服务器可以通过该机制从客户机请求认证信息(用户标识和密码)。客户端在授权标头中将身份验证信息凭证(采用 base-64 编码)传递给服务器,从而可以访问受保护的资源。

服务端开启Basic Auth后,通过认证的方式有两种:

  1. 在访问URL的时候主动代码账号和密码信息,如http://user:[email protected],其中user是账户名,password是密码。
  2. 在请求头部加上Authorization头部,并将值设置为Basic xxxx,xxxx是账号和密码的base64编码结果。

一般我们使用的是第二种方式:如果网站需要认证,浏览器会自动会弹出登录框,手动输入账号密码后浏览器在头部带上认证信息访问。

二、基本流程

1. 浏览器GET请求受保护的网络资源

2. 服务器返回401响应(Unauthorized),表示该资源需要授权访问,头部带有WWW-Authenticate字段:

WWW-Authenticate: Basic realm=”Authorization Required”, charset=”UTF-8”

【Basic表示使用basic认证算法;realm:认证域。明文信息,用于提示客户端使用哪些用户名和密码

3. 浏览器弹出用户名和密码输入框,让用户提供凭证。用户输入信息后,将凭证信息进行Base64编码后,再次发送请求到服务器,头部带有Authorization字段:

Authorization: Basic YWRtaW46cGFzcw==

Authorization分为两部分,第一部分是Basic,第二部分是用户凭证信息的编码:

(1) 用户名与密码通过“:”组合,注意用户名不能包含“:”

(2) 组合字符串默认使用US-ASCII编码,当然服务器也可以要求UTF-8编码

(3) 组合后的字符串进行Base64编码

(4) Admin:pass的Base64编码为:YWRtaW46cGFzcw==

服务器收到用户的请求,提取出用户凭证,校验匹配后,返回包含该资源信息的200成功响应。

三、Basic Auth优缺点

1. Basic Auth优点

  • 简单 - 认证信息使用标准的http头部字段进行传输,不需要使用cookies/session等,也没有复杂的客户端和服务端协商过程。

2. Basic Auth缺点

  • 安全 - 认证信息仅仅使用Base64进行编码,并未使用加密算法,基本上等于明文传输,需要使用https进行加密传输。
  • 即使密码被强加密,第三方仍可通过加密后的用户名和密码进行重放攻击
  • 效率低,服务端需要对每条请求资源验证身份
  • 如果想再进行一次 BASIC 认证时,一般的浏览器却无法实现认证注销操作。所以,BASIC 认证使用上不够灵活,且达不到多数 Web 网站期望的安全性等级,因此并不常用。

3. Basic Auth应用场景

  • Basic Auth比较适合简单的认证场景,尤其是在内网中使用。通常我们会配合https进行信息加密,来提高安全性。

标签:编码,Http,Auth,认证,密码,信息,Basic
From: https://www.cnblogs.com/victorique-de-blois/p/16927496.html

相关文章

  • Linux下好用的下载软件(bt,磁力,http,https, stream...)
    https://www.codenong.com/1664311678768348926/下面来看一下Linux有哪些常用又好用的下载工具。XDMXDM(XtremeDownloadManager)是一个免费且功能强大的下载工具,支持简......
  • 第五十八章 CSP的常见问题 - HTTP请求失败
    第五十八章CSP的常见问题-HTTP请求失败HTTP请求失败。无法处理超事件。这是什么意思?当浏览器试图与CSPbroker小程序通信但无法通信时,会发生超级事件错误。这可能与代......
  • 思维导图:HTTP 演化
    思维导图:HTTP演化思路整理当前版本优点当前版本缺点如何优化该版本优化不了的怎么办兼容性问题版本之间的联系相关问题HTTP1.0的问题?HTTP/1.1版本比1.0版本多了哪些特......
  • Servlet-urlpartten配置、HTTP-概述
    Servlet-urlpartten配置Servlet相关配置1.urlpartten:Servlet访问路径1.一个Servlet可以定义多个访问路径:@WebServlet({"/d4","/dd4","/ddd4"})......
  • IDEA插件List of plugins was not loaded for following hosts: http://plugins.jetbr
    IDEA插件市场点开资源库后报错:Listofpluginswasnotloadedforfollowinghosts:http://plugins.jetbrains.com。解决办法:File-Settings-Plugins-Browserepositori......
  • 创建自己的https证书
    使用mkcert工具创建证书1、下载mkcert工具,下载地址如下:mkcert工具下载2、解压后运行https本地证书生成工具.bat(文件上点鼠标右键,以管理员身份运行)生成的证书在C:\Users......
  • Http协议
    http协议响应协议报文/***http响应协议的具体格式**HTTP/1.1200ok状态行*Content-Type:text/html;charset=ISO-8859-1......
  • 一个 TCP 连接可以发多少个 HTTP 请求?
    曾经有这么一道经典面试题:从URL在浏览器被输入到页面展现的过程中发生了什么?相信大多数准备过的同学都能回答出来,但是如果继续问:收到的HTML如果包含几十个图片标签,这些......
  • Decompressing GZip Stream from HTTPClient Response
    DecompressingGZipStreamfromHTTPClientResponse回答1JustinstantiateHttpClientlikethis:HttpClientHandlerhandler=newHttpClientHandler(){Auto......
  • HTTP返回的状态码都表示什么含义
    HTTP返回的状态码都表示什么含义201-206都表示服务器成功处理了请求的状态代码,说明网页可以正常访问。200(成功)服务器已成功处理了请求。通常,这表示服务器提供了请求的网......