Cookie与身份认证。

提到HTTP协议,不可避免地都会牵涉到Cookie,可以说,Cookie作为HTTP的重要组成部分,促进了HTTP协议的发展壮大。

HTTP协议如果没有了Cookie,将会是一个无状态,无法便捷地进行用户识别的协议。

通常,Cookie由服务端产生,然后在HTTP会话中发往客户端,并在客户端被维护,根据设置,一个Cookie将会有一定的作用域,通常会对一个或者多个域名起作用,一个HTTP请求将会携带属于它的Cookie。同时,Cookie有生命周期,它由服务端下发时确定。

Cookie的作用是用于区分识别用户身份,进行会话跟踪、会话管理、个性化服务及行为跟踪。

客户端在发起HTTP请求时会根据客户端的当前情况确定是否携带Cookie,如果携带,则在HTTP请求头中表现为字段“Cookie: ”;服务器则在收到HTTP请求时根据具体情况确定是否要设置客户端的Cookie,如果要设置,则在HTTP响应头中表现为字段“Set-Cookie:”。

一个典型的HTTP会话如下:

会话中请求端携带了客户端所存在的Cookie,服务端收到后,设置新的Cookie,将旧Cookie覆盖。

在响应头中,经常会有多个“Set-Cookie:”项,而在“Set-Cookie:”字段中,必要时会有“Expires”项,告知客户端当前Cookie项的过期时间。

Cookie很简单,但是,由于一些APP或者网站的低级设计,经常会有很多敏感信息在Cookie中被携带。

由于Cookie用来进行身份认证的特殊性,如果拿到了某个网站或APP的某个用户的Cookie信息,基本上就可以冒充这个用户,进行很多的操作和获取很多重要的信息了,很多使用Cookie验证用户的网站,很少使用其它措施来进行用户的二次验证,历史上很多的网站泄露事件都是通过Cookie的泄露来进行的。

Cookie还有一个重要的作用,就是用来精准推送广告。

随着时代的进步,网络的发展,很多网站将HTTP升级为HTTPS,当然,Cookie作为HTTP的重要部分,在HTTPS中会继续存在,可以在“Set-Cookie:”项中加入“Secure”参数,来表示该Cookie仅供HTTPS使用。

如果一个APP完全地使用HTTPS进行数据的传输,那自然问题不大,但现实是,很多的APP,HTTP和HTTPS混用,然后,二者的Cookie也混用,使HTTPS访问敏感信息的Cookie能够轻松地从HTTP会话中获取到,最终导致信息的泄露,防不胜防。

去某咖啡厅,伪装个热点,你会获取到大量泄露的Cookie,然后,别乱玩呀,看看就可以了,要做一个合法的公民。

长按进行关注。

HTTP协议解析之Cookie的更多相关文章

  1. WebSocket协议解析

    WebSocket协议解析 转载请注明出处:WebSocket解析 现在,很多网站为了实现推送技术,所用的技术都是轮询.轮询是指在特定的时间间隔(如每一秒),由浏览器对服务器发起HTTP请求,然后由服 ...

  2. ts 协议解析

    pes : http://wenku.baidu.com/link?url=KjcA0qXqZ1bWVQTa8i1YOmygofldSQL7Pjj-zGRw1e_6_LFmVLo5DIWF0SNwVn ...

  3. [转]netty对http协议解析原理

    本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能. 1 http协议 1.1 描述 标示 ...

  4. twemproxyRedis协议解析探索——剖析twemproxy代码正编

    这篇文章会对twemproxyRedis协议解析代码部分进行一番简单的分析,同时给出twemproxy目前支持的所有Redis命令.在这篇文章开始前,我想大家去简单地理解一下有限状态机,当然不理解也是 ...

  5. B/S 架构中,网络模型的分解与协议解析

    前言 如果是C/S专业毕业的或者是学过计算机网络课程的童鞋们,相信大家都知道网络模型的划分,本文首先来聊一聊目前对于B/S结构中,网络模型分解的两种方式. 没错,相信大家看到这个图片的时候就已经明白了 ...

  6. 详解BLE 空中包格式—兼BLE Link layer协议解析

    BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(pa ...

  7. netty对http协议解析原理解析

    本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能. 1 http协议 1.1 描述 标示 ...

  8. MODBUS协议解析中常用的转换帮助类(C#)

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  9. AOSP中的HLS协议解析

    [时间:2018-04] [状态:Open] [关键词:流媒体,stream,HLS, AOSP, 源码分析,HttpLiveSource, LiveSession,PlaylistFetcher] ...

随机推荐

  1. Ruby中星号打包解包操作

    Ruby中可以使用一个星号*和两个星号**完成一些打包.解包操作,它们称为splat操作符: 一个星号:以数组为依据进行打包解包(参考文章) 两个星号:以hash为依据进行打包解包(参考文章) 两个星 ...

  2. 理解并运用TP5.1-Facade

    1.内容介绍 深入解析tp5.1与laravel 中Facade底层原理实现 1. 什么是Facade 2. 为什么需要有什么好处 3.  Facade实现原理 4. 功能实现. 5. 容器注入 2. ...

  3. socket调试工具(Mac版)

    基于Mac版的Socket测试功能,类似于PostMan的功能,对于Socket长链接的项目开发很有帮助. 本人也是通过好多渠道才找到这篇文章,与大家共享: 按照步骤一步一步来就对了~ 本文参考于:h ...

  4. Python遍历字典

    1.遍历key值 1 >>> d = {'Python':'astonishing', 'C++':'complicated', 'Java':'versatile'} 2 > ...

  5. 剑指offer 21:包含min函数的栈

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 解题思路 要求在O(1)时间内完成,由于栈后进先出的原则,不能出现破坏栈结构的事情.因 ...

  6. Windows下使用PuTTY连接Centos7、Linux系统目录结构、一些操作命令

    PuTTY可以远程管理Linux.PuTTY官网:https://www.putty.org/ 一.使用PuTTY连接Centos7 下载安装后,打开如下图: 1.输入主机名或IP地址2.端口号默认2 ...

  7. python列表转换为字符串

    对于非纯字符串组成的列表,需要使用map(str, 列表)转换,纯字符串组成的列表则不需要转换 list1 = [1, 2, 3, 4, 5]c = ','.join(map(str,list1))p ...

  8. Python虚拟环境导出包安装到另一台电脑的方法

    环境:Windows 版 Python Python 3.6.8可以用自带的命令建立虚拟环境,不用安装另外的如 virtualenv.virtualenvwrapper等工具. python -m v ...

  9. busybox启动流程简单解析:从init到shell login

    关键词:kernel_init().init.inittab.wait/waitpid.fork/vfork.setsid().execvp/execlp.dup2等等. 由于遇到一系列定制,从ini ...

  10. 201871010118-唐敬博《面向对象程序设计(java)》第一周学习总结

    博文正文开头格式:(3分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/p/11435127.html 这个作业的要求在哪里 https:/ ...