www-authenticate认证过程浅析

2023-05-16

/*****************************************************************************

**

**   文档:www-authenticate认证过程简单研究

**

**   创建:http://hi.baidu.com/netee

**

**   日期:2009-10-07

**

**    版权:原创内容,转载请注明出处,并保留本声明信息

**

******************************************************************************/

一、www-authenticate简介

www-authenticate是早期的一种简单的,有效的用户身份认证技术。

很多网站验证都采用这种简单的验证方式来完成对客户端请求的数据的合法性进行验证。尤其在嵌入式领域中,此方法使用较多。

缺点:这种认证方式在传输过程中是明码传输的,采用的用户名密码加密方式为BASE-64,其解码过程非常简单,网络上很容易搜索到编解码的源码。采用这种认证方式对于普通用户是较安全的,但稍懂TCP/IP协议和HTTP传输协议和验证过程的,破解这种验证用户名和密码是非常简单的。所以其认证技术并不是很安全。

二、认证过程

其基本认证过程如下(以下事例假设服务端开启了www-authenticate认证功能):

1、             首先客户端(一般情况为用户操作的WEB浏览器)会根据用户输入的信息向服务端发送HTTP请求,比如用户要访问www.baidu.com网站,浏览器根据此信息向该网站的服务器发送一个(可能是多个)WEB请求。

2、             服务端收到请求后,首先会解析发送来的数据中是否包含有:

“Authorization: BasicYWRtaW46YWRtaW4=”这种格式的数据,如果没有这样的数据,则服务端会发送HTTP信息头“WWW-Authenticate: Basic realm=“.””到客户端,要求客户端发送合法的用户名和密码到服务端。(在发送此信息头的同时也附带验证失败时显示的页面提示信息,如:

3、             当客户端(浏览器)收到带有类似“WWW-Authenticate: Basic realm=“.””的信息后,将会弹出一个对话框,要求用户输入验证信息。

                                  

图一 IE浏览器弹出的对话框

4、             用户输入用户名:admin 密码:admin后,浏览器将以下面这种格式将数据发送给服务器端:

“Authorization: BasicYWRtaW46YWRtaW4=”(以上均不包含双引号)Authorization:Basic为www-authenticate认证的标准HTTP信息头,YWRtaW46YWRtaW4=是经BASE-64加密后的用户名和密码,经解密后的格式为 admin:admin

5、             服务器收到带有用户验证信息的数据后,就会解析数据,将用户名和密码提取出来进行验证其有效性,如果用户名和密码全部合法,则将用户请求的页面数据发送给客户端,浏览器将收到的数据还原为网页内容。如果用户验证信息不合法,则返回错误信息。

三、使用www-authenticate认证的优缺点

优点:使用www-authenticate认证,在服务端做的事情较少,有一部分验证处理都是在客户端的浏览器完成的。像是否需要二次输入用户信息,弹出怎样的用户信息对话框,这些都是浏览器做的事,服务端并不需要再编写用户对话框之类的东西,也不需要判断客户端IP是否是同一个。

缺点:验证方式太简单,容易被破解。

标签: TAG: 用户登录框是怎么做的;路由器的用户登录框是怎么做的;通用的用户登录框;authenticate验证;Authorization验证

 

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

www-authenticate认证过程浅析 的相关文章

随机推荐

  • STC8A 应用知识归纳

    STC8A 应用知识归纳 串口通信串口寄存器介绍功能 定时器 计数器定时器寄存器介绍 看门狗 xff1a 复位看门狗寄存器操作 外部中断ADCADC寄存器介绍 串口通信 每个串行口有两个数据缓冲器 xff08 SBUF xff09 一个移位
  • LoRa是什么

    LoRa是什么 LoRa是什么LoRa调制LoRa调制参数LoRa WAN 网络LoRa技术框图LoRa WAN网络组成LoRa终端设备划分成A B C三类 LoRa是什么 LoRa 是LPWAN通信技术中的一种 LoRa 是美国Semte
  • LoRa模块(内置MCU),亿百特E22-400T30S,广播监听、定点传输、中继组网

    LoRa模块 xff08 内置MCU xff09 xff0c 亿百特E22 400T30S xff0c 广播监听 定点传输 中继组网 配置说明广播监听 定点传输中继组网 配置说明 工作模式 模式M1 M0模式介绍模式0 传输模式0 0串口打
  • 定位——GNSS

    GNSS GNSS 即全球导航卫星系统 xff08 Global Navigation Satellite System xff09 是所有导航定位卫星的总称 xff0c 凡是可以通过捕获跟踪其卫星信号实现定位的系统 xff0c 均可纳入G
  • 惠普zbook15g2拆机换硅脂

    前几天电脑cpu温度居高不下 xff0c 就寻思着拆机清灰 43 替换硅脂 xff0c 结果网上到处找不到惠普zbook15的完整拆机指导 xff0c 唯一可用的某论坛关于zbook17的拆机分享看着很不舒服 xff0c 于是决定自己成功后
  • Camera-LIDAR 联合标定方法总结

    项目需要融合雷达和相机 xff0c 所以要做联合标定 xff0c 记录下收集的标定方法 一 总体标定步骤 标定就是找到雷达到相机的空间转换关系 xff0c 在不同的坐标系之间转换需要旋转矩阵 R 和平移矩阵 T xff0c 为后续的雷达和相
  • 52条SQL语句性能优化策略

    1 对查询进行优化 xff0c 应尽量避免全表扫描 xff0c 首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引 2 应尽量避免在 WHERE 子句中对字段进行 NULL 值判断 xff0c 创建表时 NULL 是默认值
  • TCP/IP四层模型及各层协议首部详述

    1 OSI七层和TCP IP四层的关系 1 1 OSI引入了服务 接口 协议 分层的概念 xff0c TCP IP借鉴了OSI的这些概念建立TCP IP模型 1 2 OSI先有模型 xff0c 后有协议 xff0c 先有标准 xff0c 后
  • 位域的定义和使用

    位域 xff1a 有些信息在存储时 xff0c 并不需要占用一个完整的字节 xff0c 而只需占几个或一个二进制位 例如在存放一个开关量时 xff0c 只有0和1 两种状态 xff0c 用一位二进位即可 为了节省存储空间 xff0c 并使处
  • Makefile 的运行(六)

    一般来说 xff0c 最简单的就是直接在命令行下输入make命令 xff0c make命令会找当前目录的makefile来执行 xff0c 一切都是自动的 但也有时你也许只想让make重编译某些文件 xff0c 而不是整个工程 xff0c
  • FreeRTOS 任务优先级说明

    freeRTOS任务优先级与Unix进程优先级不同 FreeRTOS 任务优先 xff1a 任务优先级数值越小 xff0c 任务优先级越低 Unix 任务优先 xff1a 进程优先级数值越小 xff0c 进程优先级越高 下面对 FreeRT
  • QT子线程读取串口数据并传到主线程

    转载 读取串口部分借鉴于Quartz010的文章 如何在QT中读取串口数据 http blog csdn net zz709196484 article details 66474917 这是博客网址 大致思路就是子线程去读取串口数据并传送
  • 最常用的Java库一览

    一个典型的Java项目依赖于第三方库 本文总结的Java库适用于各种应用 xff0c 比较流行并且广泛使用 其中一些还提供简单的示例 xff08 来自ProgramCreek xff09 Java SDK 肯定是使用最广的库 xff0c 所
  • C#Socket编程详解(一)TCP与UDP简介

    一 TCP与UDP 1 TCP 1 1 定义 TCP xff08 TransmissionControl Protocol xff09 传输控制协议 是一种可靠的 面向连接的协议 xff08 eg 打电话 xff09 传输效率低全双工通信
  • AD19导出bom表的方法(按照元件不同数值分类,重点信息突出)

    我画电路图用的是AD19的软件 xff0c 最后板子画好了要进行元器件采购要生成bom表 xff0c 查了一下相关的资料 xff0c 总结整理一下 xff1a 1 在报告 xff08 report xff09 打开Bill of Mater
  • 为什么c++要“在头文件中声明,在源文件中定义”?

    gt gt gt 搬运一个知乎问答 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 下面是回答 61 61 61 61 61 61 61 61 61 61 61 61 61
  • HTTP header 参数丢失情况分析以及解决防范

    HTTP header 参数丢失情况分析以及解决防范 1 问题 当项目有Nginx做了代理的时候 xff0c 请求头中传参 34 user ip 34 xff0c 接口接收不到 2 问题分析 默认nginx是不能转发带 的header信息的
  • Keil 调试局部变量查看显示not in scope

    调整优化级别 不同的优化级别允许您在编译代码中可用的调试信息级别与代码性能之间进行权衡 可以使用以下优化级别 xff1a o O0应用最小优化 大多数优化都被关闭 xff0c 生成的代码具有最佳的调试视图 o O1应用受限优化 例如 xff
  • 【32单片机学习】(6)STM32串口+DMA收发不定长数据

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 目录 前言 1 DMA介绍 2 串口接收数据 3 实验现象 1 实验电路图 2 串口收发不定长数据视频演示 3 OLED 显示接收数据 4
  • www-authenticate认证过程浅析

    文档 xff1a www authenticate认证过程简单研究 创建 xff1a http hi baidu com netee 日期 xff1a 2009 10 07 版权 xff1a 原创内容 xff0c 转载请注明出处 xff0c