NetSecurity 板


LINE

2017.W11 - Cookie vs Session > 就算今天是抱抱星期二 我还是要称今天是 Pi-Day ## 前言 ## 虽然是老梗 但是还是替大家复习一下 Cookie 跟 Session 的差别 不然下次搞混真的会让人无言 ## 内容 ## 在提到 Cookie 与 Session 之前 需要先了解一下 HTTP 的架构 HTTP[0] 是一种广泛使用的网路协定 (如果你透过网页浏览 PTT 那就是在使用 HTTP) 目前最广泛使用的是用 RFC 2616[1] 的 HTTP/1.1 已经完成的 RFC 7540 (HTTP/2) 则有机会成为新的标准 在 HTTP 的世界当中 请求本身是无状态的 (stateless) 这表示任意两个请求之间 本身是没有关联 (储存状态) 但现在的网路使用中 (排除匿名浏览) 网站都可以记录你上次的 1. 浏览纪录 2. 搜寻结果 3. 登入帐号 4. ... 这就跟 HTTP 的无状态特性相违背 (?) 而 Cookie 就是处理这个需求的产物 Cookie 是定义在 RFC 2109 的一个实作 本身储存一个特殊的字串 (有大小限制) 在浏览网页的时候一并送给网页伺服器 而伺服器会根据当初设计的逻辑做特定的处理 像是 ptt.cc 就会利用 over18 来记录是否点击过已满 18 岁的纪录 在引入 Cookie 的概念後 HTTP 就有了状态的特性 但是明眼人一看就会发现问题:这个 Cookie 似乎随便带入都可以 假如有一个神奇的程式设计师 (我称之为 JW) 他设计了一个逻辑 1. 如果请求中没有 age 则跳出输入年龄的视窗 2. 如果请求中有 age 这个 Cookie 则显示 age 的内容 Cookie 本身因为是使用者可控的内容 所以伺服器永远无法保证这个内容的合法性 这里的合法性包含了正确性与内容不被修改 所以如果把帐号/密码资讯 放到 Cookie 当中就是一个 十分好的巧思 另一方面 Session[2] 则是一个 (相对) 用来保证安全的 Cookie 在实务上 Session 跟 Cookie 一样都放在请求当中 内容当然也可以被使用者控制、修改、窃取 然而 Session 本身在伺服器当中还会做额外的验证 这里的验证可以包涵:来源 IP (REMOTE_ADDRESS)、User Agent [3] 等 而 session 本身并不太带有任何的敏感资讯 (像是帐号内容 如果没有额外的巧思...) 相反的 Session 一个跟伺服器端的资料的对应关系 可以想像成: 伺服器已经知道帐号 S 登入了 并且对应到一个 Session ID 是 5538 当只有 IP 位址从 1.2.3.4 的请求 才会做 1-1 的对应 其他的则当作是无效 Session ## 同场加映 ## 有兴趣的人 也可以复习一下 Encoding、HASH、Encryption 之间的差异 在工作的时候 真的会有神奇的工程师混用这三者... [0]: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol [1]: https://tools.ietf.org/html/rfc2616 [2]: https://en.wikipedia.org/wiki/Session_(computer_science) [3]: https://en.wikipedia.org/wiki/User_agent --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.122.171
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/NetSecurity/M.1489506440.A.4FC.html
1F:推 supermario85: 感谢分享,谢谢 03/15 07:43
2F:推 tiefblau: 顺带一提 会有过期机制~ 03/16 10:59
3F:推 qqdn: 感谢分享 03/18 07:00
4F:推 johnkk6j: 希望下次可以分享一些无线网路的安全机制~~感谢大大~ 03/21 16:20
5F:→ CMJ0121: 楼上的意见我收到了... 给我点时间学学 03/21 22:24
6F:→ CMJ0121: 不然就要看板上出没的大大分享一下心得了 03/21 22:24







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP