《HTTP权威指南》– 9.识别和认证
客户端识别与Cookie机制
承载用户相关信息的HTTP首部
- From Email地址
- User-Agent 浏览器软件
- Referer 跳转链接<来自>
- Author ziation 用户名、密码
- Client-IP IP地址
- X-Forwarded-For IP地址
- Cookie 服务器产生的ID标签
Cookie类型:
临时cookie 记录了用户访问站点时的设置和偏好,用户退出浏览器时,回话cookie就被删除了。持久cookie 生存时间更长一些,它们存储在硬盘上,浏览器退出,计算机重启时它们仍然存在。不同的浏览器会以不同的方式 存储cookie
,网景的 Navigator
会将cookie存储在一个名为 cookie.txt
的文本文件中,例:
domain | allh | path | secure | expires | name | value |
---|---|---|---|---|---|---|
www.example.com | FALSE | / | FALSE | 1136109078 | cc | /us/ |
www.example2.com | FALSE | / | FALSE | 1136109078 | cc | /us/ |
文本文件中的每一行都代表一个cookie
- domain : cookie的域;
- allh : 是域中的所有主机都获取cookie,还是只有指定了名字的主机获取;
- path : 域中与cookie相关的路径前缀
- secure : 是否只有在使用SSL连接时蔡发松这个cookie
- expires : 过期秒数
- name : cookie名字
- value : cookie值
基本认证机制:
HTTP通过一组可定制的控制首部,为不同的认证协议提供了一个可扩展框架。认证的四个步骤:
- 请求: 没有认证消息;
- 质询: 服务器用401状态拒绝了请求,说明需要用户提供用户名和密码;
- 授权: 客户端重新发出请求 <附加一个 Authorization首部> 用来说明认证算法、用户名和密码;
- 成功: 如果授权证书是正确的,服务器返回相关资源和一个正常的状态码,对高级认证算法来说,可能还会在Authorization-Info首部附加一些额外信息;
基本认证存在以下安全缺陷:
- 基本认证会通过网络发送用户名和密码。这些用户名和密码都是以一种很容易的解码形式存的的;
- 即使密码是以更难解码的方式加密的,第三方用户仍然可以捕获被修改过的用户名和密码;
- 用户没有良好的安全意识;
- 基本认证没有提供任何针对代理和作为中间人的中间节点的防护措施;
- 假冒服务器很容易骗过基本验证;
摘要认证:
摘要认证 是另一种HTTP认证协议。它试图修复基本认证协议的严重缺陷,进行了如下改进:
- 永远不会以明文方式在网络上发送密码;
- 可以防止恶意用户捕获并重置认证的握手过程;
- 可以有选择地方式对报文内容的篡改;
- 防范几种常见的攻击方式;
摘要认证 并不是最安全的协议,但比基本认证要强大很多。传输层安全(Transport Layer Security : TLS)和安全HTTP(HTTPS)协议更安全一些。
摘要认证的握手机制:
- 服务器会计算出一个随机数;
- 服务器将这个随机数放在www - Authentiocate质询报文中,与服务器所支持的算法列表一同发往客户端;
- 客户端选择一个算法,计算出密码和其他数据的摘要;
- 将摘要放在一条Authorization报文中发回服务器,如果客户端认证服务器,可以发送客户端随机数;
- 服务器接受摘要,选中的算法以及支撑数据,计算出与客户端相同的摘要;
### 图灵图书 -- HTTP权威指南
豆瓣读书 -- HTTP权威指南
《HTTP权威指南》– 9.识别和认证的更多相关文章
- 《http权威指南》读书笔记10
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- HTTP权威指南-学习笔记
目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...
- 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块
五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options] -v,--verbose ...
- Netty权威指南
Netty权威指南(异步非阻塞通信领域的经典之作,国内首本深入剖析Netty的著作,全面系统讲解原理.实战和源码,带你完美进阶Netty工程师.) 李林锋 著 ISBN 978-7-121-233 ...
- 《JavaScript权威指南 第六版 中文版》(一)
<JavaScript权威指南 第六版 中文版> 第二章 词法结构 2.1字符集 JavaScript是使用Unicode字符集编码写的. 2.1.1区分大小写 JavaScript是区分 ...
- 《http权威指南》读书笔记14
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记13
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记12
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记11
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记4
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
随机推荐
- rollup汇总作业-合并索引
文章转载自:https://blog.csdn.net/UbuntuTouch/article/details/106194800
- 使用docker-compose部署Django项目
先从最基本的功能开始 在一切工作开始前,需要先编辑好三个必要的文件. 第一步,因为应用将要运行在一个满足所有环境依赖的 Docker 容器里面,那么我们可以通过编辑 Dockerfile 文件来指定 ...
- 【原创】推流录屏软件OBS使用教程--录屏
之前有录屏需要,写了一篇关于ffmpeg录屏的文章,反响还不错,但是直接用ffmpeg门槛有些高,今天写一篇图形界面的录屏推流工具OBS的使用教程.这次先写OBS的录屏教程 下载安装 点击 OBS官网 ...
- [题解] Codeforces 438 E The Child and Binary Tree DP,多项式,生成函数
题目 首先令\(f_i\)表示权值和为\(i\)的二叉树数量,\(f_0=1\). 转移为:\(f_k=\sum_{i=0}^n \sum_{j=0}^{k-c_i}f_j f_{k-c_i-j}\) ...
- Educational Codeforces Round 106 (Rated for Div. 2)
就ac了2题... A题一开始题意模模糊糊的似懂非懂,然后自己按样例推出了题意,简单题很容易ac了.还是自己的英语水平太菜了.... B题根据0和1的位置关系能看出来,因为0不能在1后面, 所以有00 ...
- Linux crontab定时任务设置
1.检查是否安装了crontab # rpm -qa | grep crontab 2.重启crontab服务 一定重启,这样确保了crontab服务的开启 # /etc/init.d/crond r ...
- reportportal 集成 robotframework 自动化执行及结果可视化
前言: 最近领导想了个需求,想把目前组内在linux平台上执行的自动化脚本搞成可视化,如果是web站点相关日志可视化倒是简单了,ELK就是不错的选择,大部分可视化项目这种的,可以做的开起来很炫. 我们 ...
- 前端无法渲染CSS文件
问题描述: 启动前端后,发现前端的页面渲染不符合预期,看情况应该是css文件没有生效. 排查步骤: 查看有无报错信息. 查看后台输出,没有可用的提示信息,如图: 确认 css 的路径没错. 前端打包后 ...
- AI之强化学习、无监督学习、半监督学习和对抗学习
1.强化学习 @ 目录 1.强化学习 1.1 强化学习原理 1.2 强化学习与监督学习 2.无监督学习 3.半监督学习 4.对抗学习 强化学习(英语:Reinforcement Learning,简称 ...
- 4.Git分支查看&创建&切换&合并
查看分支 git branch -v # 查看分支,*代表当前所在的分支 创建分支 git branch hot-fix # 创建一个hot-fix分支,然后使用-v查看 # 可以看到除了ma ...