Web 漏洞挖掘实战
王昊天
螣龙安科 CEO 兼创始人
14867 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
结束语 (2讲)
Web 漏洞挖掘实战
15
15
1.0x
00:00/00:00
登录|注册

29|Session与Cookie:账户体系的安全设计原理

你好,我是王昊天。
我有次在访问某个页面时,为了下载一些东西,按照页面要求进行了复杂的登录操作。之后我不小心关闭了当前页面,然后再一次点开这个页面,麻木的准备再来一遍复杂的登录操作时,我神奇地发现,面前的 Web 应用竟然是登录成功的状态,你知道这是怎么一回事吗?
事实上,这个现象是由 Web 账户体系的安全设计所导致的。在这一讲中,我们将会对它进行学习,这样你就能清楚地知道问题的答案啦。下面我们就正式开始今天的学习。
现在几乎每个大型 Web 应用都会存在账户体系,当我们需要获取 Web 应用中的某些服务时,Web 应用会首先对我们的身份进行认证。所以接下来,我们会从身份认证的相关基础知识入手。

身份认证

身份认证的方式有多种,我们可以用最典型的账号密码进行认证,除此之外,我们还可以用 cookie(session)、Token、数字证书以及手机验证码来验证。这里你可能对于 cookie 以及 Token 会比较陌生,不过不用担心,我们会在后面对它们进行详细的讲解。
在这些认证过程中,可以分为两种类型,即登录过程的认证以及保持登录的认证
为了让你更好地理解它们二者之间的区别,我们一起来看一个示例。
这是谜团(mituan.zone)的登录页面,我们需要输入正确的用户名、密码以及验证码才能通过身份认证,很明显这是登录过程的认证。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Web应用中的账户体系安全设计原理涉及身份认证、会话管理和单点登录等内容。身份认证方式包括登录过程认证和保持登录认证,其中保持登录认证通过会话管理实现。会话管理有两种典型方式,基于session的认证和基于Token的认证,它们各自存在安全隐患。单点登录解决了多个应用需要分开登录注册的问题,提高了登录的安全性。文章深入浅出地介绍了这些内容,让读者对Web应用账户体系的安全设计有了全面的了解。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Web 漏洞挖掘实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • peter
    请教老师几个问题啊: Q1:session有哪几个方面决定? 同一个用户,用同一个浏览器,用两个tab登录,是一个session吗? 同一个用户,用不同浏览器登录,是一个session吗? 我的理解:session由这三项决定: 电脑 + 浏览器 + 用户 这里的“用户”是指用户账号。 一个用户在多个电脑上登录,算是不同的session。 一个用户在一台电脑上用不同浏览器登录是不同session。 同一浏览器但不同tab,是同一个session. 我的理解是否对? Q2:session认证的第三步,"auth req"是浏览器发送、但用户无感知的吗?对于用户来说,是直接访问网站资源,不会再去做登录、鉴权一类的操作,对吗? Q3:现在cookie还被大量使用吗? 如果各个主流网站还依赖cookie,如果浏览器禁止cookie怎么办?另外,cookie容易被黑客破解吗? Q4:会话固定攻击图中,第一步login,网站为什么返回sessionid? 既然攻击者没有用户名和密码,他也没法login啊。 login失败,网站怎么会返回sessionid?
    2022-03-03
    2
  • 若镜
    请问 sessionid存在cookie中 这个很容易copy走 感觉这个设计很不安全呀? 为啥目前这是普遍的登陆认证方式呀?多谢
    2022-03-08
    1
  • Klaus7
    为什么将 session 信息放置在 cookie 中会更加安全吗? 1.默认情况下,浏览器会强制同源策略,这意味着一个网站的JS代码不能访问其他域的 Cookie。 2.Cookie 可以具有不同的过期时间,允许应用程序精确控制会话的持久性。
    2023-09-14归属地:浙江
  • Klaus7
    会话固定攻击举例,感觉不严谨,受攻击网站通常会返回一个set-cookie(新的jsessionId)给受害者,攻击者此时使用原先的sessionId是无法保持登录的认证的
    2023-09-14归属地:浙江
  • ifelse
    学习打卡
    2023-03-30归属地:浙江
  • peter
    补充一个问题: Q5:token部分,两个header是什么关系? token部分,JSW需要保存在header中;JWT的构成图中,也有一个header。我的理解:前一个header,是指http消息的请求头。后一个header,是JWT内容的构成部分。我的理解对吗?
    2022-03-03
  • clay
    在基于 session 的认证一节的攻击案例中,为什么攻击者没有登录的情况下服务器就会返回一个sessionid?而且这个sessionid还是需要用户登录后才可以通过验证?现实业务真的有这种设计逻辑吗?
    2022-03-03
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部