04 基础篇-COOKIE

cookie

Cookie 是一些数据, 存储于你电脑上的文本文件中。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用 户的信息。
Cookie 的作用就是用于解决 "如何记录客户端的用户信息":

  • 当用户访问 web 页面时,他的名字可以记录在 cookie 中。
  • 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。

1、cookie的分类

  • 由服务器返回的cookie---Set-cookie

    这一类Cookie是由服务端产生的,再发送给客户端保存,用的时候我们直接拿来用就行了。
    它的本来面貌是这样子的:

    Set-Cookie: t7asq_4ad6_saltkey=e4CjZ008; expires=Sat, 18-Jan-2020  06:45:05 GMT; path=/; domain=.discuz.net; httponly
    Set-Cookie: t7asq_4ad6_lastvisit=1576734305; expires=Sat, 18-Jan-2020 06:45:05 GMT; path=/; domain=.discuz.net
    Set-Cookie: t7asq_4ad6_lastact=1576737905%09member.php%09logging; expires=Fri, 20-Dec-2019 06:45:05 GMT; path=/;
    Set-Cookie: domain=.discuz.net
    

    经过格式化后变成抓包时我们看到的样子:


    Set-cookie.png
  • 由JavaScript生成的cookie

JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。
JavaScript 中,创建 cookie 如下所示:

document.cookie="username=John Doe";

这一类由JavaScript生成的cookie,需要我们自己去js文件里分析查找它的算法,所以document.cookie这个要记住,因为它是你查找cookie生成算法时要用到的。

2、cookie的作用

  • 识别身份(验证码)

服务器需要通过一段cookie来判断这个验证码是不是你这个链接相对应的,举个简单的例子:
post登录正方教务系统,在登录地址http://jwxt.njupt.edu.cn/
获取得cookie:Set-Cookie: ASP.NET_SessionId=2jmvmp34jiaaf0id0zkvbl55; path=/ WEB=20111152; path=/
在获取验证码时,你要将ASP.NET_SessionId=2jmvmp34jiaaf0id0zkvbl55; WEB=20111152提交上去,否则取到的验证码就不是ASP.NET_SessionId=2jmvmp34jiaaf0id0zkvbl55; path=/ WEB=20111152; path=/对应的验证码,登录时会显示验证码错误

  • 判断是否访问过某些请求
    不同的页面,有些cookie事不一样的
  • 判断是否登录状态

    你登录后,服务器会返回一个登录成功后的cookie,这个cookie可以用于访问需要这个网页登录才能操作的页面。
    以正方教务系统为例,我们需要输入账号密码验证码登录后才能访问主页,其实也可以通过登录后获取到的cookie直接访问主页,当然,cookie必须是还没失效:


    cookie访问主页.png

3、cookie的结构

以这段为例,分析cookie的结构

Set-Cookie: t7asq_4ad6_saltkey=e4CjZ008; expires=Sat, 18-Jan-2020 06:45:05 GMT; path=/; domain=.discuz.net; httponly

  • t7asq_4ad6_saltkey=e4CjZ008cookie的值,其中- t7asq_4ad6_saltkey为字段名,e4CjZ008为字段名的值,用=隔开
  • ;分隔作用,分号+空格,最后一个后面不用加
  • expires=Sat, 18-Jan-2020 06:45:05 GMTcookie的有效期
  • path=/作用的路径
  • domain=.discuz.net作用的域名,表明该cookie只在这个域名中可用
  • httponlyCookie访问控制,当是httponly,可以防止程序获取cookie,当是secure,可防止信息在传递的过程中被监听捕获后导致信息泄露

4、cookie合并更新

当你访问登录地址时,获取到一个cookie,当你访问验证码地址时又获取到了一个cookie,两个cookie里有的字段名可能是相同的,但值不同,这时,旧的值旧只能被放弃掉。
用一个例子来解释比较清晰:
当访问登录地址https://www.discuz.net/member.php?mod=logging&action=login时,得到如下cookie

t7asq_4ad6_saltkey=HE4WI3X7; t7asq_4ad6_lastvisit=1576741783; t7asq_4ad6_lastact=1576745383%09member.php%09logging;

当访问验证码地址https://www.discuz.net/misc.php?mod=seccode&update=66282&idhash=cS时,得到如下cookie

t7asq_4ad6_lastact=1576745383%09misc.php%09seccode; t7asq_4ad6_seccode=3206933.345443c1459be8981e

可以看出,后者t7asq_4ad6_lastact字段的值变了,且多出来t7asq_4ad6_seccode=3206933.345443c1459be8981e
那么就需要将两个cookie进行合并更新了

1. 对比新的cookie 去除无效cookie

本次合并的cookie中没有需要剔除的无效cookie

2.在新的cookie里面寻找是否存在旧cookie里的名字,存在就用新的cookie替换掉旧的

刚刚找出t7asq_4ad6_lastact字段的值变了,所以用新的t7asq_4ad6_lastact字段的值去替换旧的值,替换后两个cookie

t7asq_4ad6_saltkey=HE4WI3X7; t7asq_4ad6_lastvisit=1576741783; t7asq_4ad6_lastact=1576745383%09misc.php%09seccode;

t7asq_4ad6_seccode=3206933.345443c1459be8981e

3.合并两个cookie
将两个cookie合并起来,得到

t7asq_4ad6_saltkey=HE4WI3X7; t7asq_4ad6_lastvisit=1576741783; t7asq_4ad6_lastact=1576745383%09misc.php%09seccode;
t7asq_4ad6_seccode=3206933.345443c1459be8981e

这就是登陆的cookie了

5、抓包流程(论清除cookie的重要性)

抓包时记得清除cookie,不然有些cookie存在的时候,服务器跟js是不会再生成这些cookie的,这会给抓包分析带来干扰

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,627评论 6 517
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,180评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 169,346评论 0 362
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,097评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,100评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,696评论 1 312
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,165评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,108评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,646评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,709评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,861评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,527评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,196评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,698评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,804评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,287评论 3 379
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,860评论 2 361

推荐阅读更多精彩内容

  • HTTP cookies,通常称之为“cookie”,已经存在很长时间了,但是仍然没有被充分理解。首要问题是存在许...
    NoFacePeace阅读 474评论 0 1
  • 作者:晚晴幽草轩www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饥人谷_Dylan阅读 1,225评论 0 51
  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 2,369评论 1 17
  • 本周关键字:家庭陪伴 九十天目标检视:九十天相约 1,断舍离,建立空间力及信息力。 2,建立阅读好习惯:快速阅读一...
    叶子佟阅读 229评论 0 0
  • 我坐在树下 读书 太阳晒着我的背 很暖 头发很烫 心中充满阳光 风吹来一片树叶 落在我的书上 我轻轻合上书本 夹起...
    红玫瑰和白汽球阅读 183评论 0 0