当前位置: 首页 > news >正文

终于搞懂 XSS 为什么能盗号了:Cookie、Session、HttpOnly 一次讲明白

刚开始学习 XSS 的时候,我一直有个疑问:

为什么很多人都说:“XSS 能盗号”?

不就是弹个:<script>alert(1)</script>吗?

后来继续学习CookieSession之后,我才慢慢明白:

XSS 真正危险的地方,不是弹窗。

而是:它能获取用户的“登录状态”。

这篇文章,我想尽量用自己的语言以及理解方式,把:

  • Cookie
  • Session
  • HttpOnly
  • XSS 为什么能盗号

一次讲清楚。

一、网站为什么知道“你是谁”?

比如:你登录了某个网站。

关闭页面后再打开:网站居然还认识你。

为什么?

总不能服务器把全国用户都记脑子里吧

其实这里就涉及:

Cookie 和 Session

二、Cookie 到底是什么?

简单理解:Cookie 是浏览器保存的一小段数据。

网站可以让浏览器保存:

Set-Cookie: sessionid=abc123

浏览器收到后:就会自动保存

之后每次访问这个网站时:

浏览器都会自动携带:Cookie: sessionid=abc123

于是服务器就知道:“哦,这还是刚才那个用户。”

三、Session 又是什么?

很多新手第一次学的时候都会懵。

其实:Session 才是真正的“登录状态”

服务器会保存:sessionid=abc123
对应用户:张三

而浏览器只负责保存:abc123

这就是:SessionID

所以整个登录流程其实是:

四、现在回来看 XSS

4.1 Session 劫持

假设网站存在 XSS。

攻击者成功执行了 JS:document.cookie

浏览器就会返回:sessionid=abc123

这时候问题就来了。

因为:这个 SessionID本质上就是用户登录身份。

如果攻击者拿到了它。

那么:服务器可能会认为攻击者就是这个用户。

这就是:Session 劫持

4.2 那xss如何盗cookie呢

五、所以 XSS 为什么危险?

以前我一直以为:XSS 就是弹窗。

后来才发现,弹窗只是:“漏洞存在”的测试方式

真正危险的是:(面试会考)

  • 获取登录态
  • 伪造用户操作
  • 获取敏感信息
  • 页面钓鱼
  • JS 键盘记录

本质上:

XSS = 攻击者能在你的浏览器里执行 JS

这才是最可怕的地方。

六、那为什么现在很多网站偷不到 Cookie 了?

因为现代网站通常会加:HttpOnly

例如:

Set-Cookie: sessionid=abc123; HttpOnly

这个属性的作用就是:不允许 JavaScript 读取 Cookie。

于是:document.cookie 就拿不到 SessionID 了。

这也是为什么:

HttpOnly 是防御 XSS 的重要手段之一。

七、HttpOnly 是不是就无敌了?

其实也不是。

因为:XSS 的本质是“执行 JS”即使偷不到 Cookie。

攻击者仍然可能:

  • 伪造请求
  • 修改页面
  • 钓鱼
  • 获取用户输入
  • 操作当前账号

所以:

HttpOnly 只是降低风险。

并不是彻底解决 XSS。

八、我现在对 XSS 最大的理解变化

以前我学习漏洞:

总喜欢:

  • 背 payload
  • 找 alert
  • 看别人打靶场

后来才发现,真正重要的是:Web 是怎么工作的

比如:

  • 浏览器为什么自动带 Cookie
  • Session 为什么能维持登录
  • JS 为什么能读取 Cookie
  • HttpOnly 为什么能防御

这些东西一旦串起来,很多漏洞就理解了。

给大家看一下真实环境截图:

九、新手学习 XSS 最容易踩的坑

我目前感觉最大的坑就是:只学 payload,不理解原理,这样后面会越来越乱。

因为:

  • DOM 不懂
  • Cookie 不懂
  • Session 不懂
  • 浏览器机制不懂

最后:看起来学了很多漏洞,实际上都是碎片知识。

十、总结

最近学习 Web 安全最大的感受就是:很多漏洞之间其实是连着的。

比如:

当这些东西真正串起来的时候。

才会第一次有:“我开始理解 Web 安全了”的感觉。

后面准备继续学习:

  • CSP
  • CSRF
  • JWT
  • SQL 注入
  • 文件上传

也会继续整理学习笔记分享出来。

http://www.jsqmd.com/news/891868/

相关文章:

  • 从重复劳动到智能助手:如何用Auto.js实现Android自动化革命
  • 5分钟上手U-Net:用深度学习轻松实现医学图像细胞膜分割
  • Java实战:手把手教你用Spring Boot集成海康综合安防平台API(附完整代码)
  • 购物篮分析实战:用Apriori挖掘高价值商品关联规则
  • 4.2 咖啡师不需要十年功底,兼职一周上手
  • 国内游戏动画培训排名前十机构推荐2026 - 资讯快报
  • 如何通过 Python 调用 Taotoken 的多模型 API 快速构建应用
  • CS2_External游戏内存操作框架深度解析与实战指南
  • House of Cat
  • 手把手教你用Vivado和ZYNQ7000玩转PS与PL通信:一个GPIO控制的完整实战
  • AI工具协同失效诊断手册:用3个指标(响应熵值、上下文衰减率、意图偏移度)秒判工作流亚健康
  • 蓝桥杯单片机选手必看:STC15F2K60S2上DS18B20驱动移植与调试避坑指南
  • SQL 转 ER 图在线工具:一键自动生成实体关系ER图 + 系统整体ER图
  • 老旧设备系统兼容性完整指南:让过时硬件焕发新生
  • KityMinder脑图工具:5个超实用技巧让你工作效率翻倍
  • 多项式插值算法
  • 3分钟掌握BetterNCM安装器:一键解锁网易云音乐完整潜力
  • 面壁智能开源低比特大模型训练成果 BitCPM-CANN,推理阶段释放约 6 倍显存红利
  • 在ubuntu上配置taotoken作为python开发环境的默认大模型服务
  • 武汉圣擎航空:一站式机票酒店签证包车出行服务,高效省心出行优选 - 土星买买买
  • BiGRU-Attention与卡尔曼滤波融合的负面舆情预测模型实践
  • 3分钟掌握iOS应用签名:终极图形化工具完整指南
  • 如何用Excel零代码掌握AI算法:15个实战案例从Softmax到Transformer的完整指南
  • FPGA加速医疗网络安全:实时检测与硬件优化实践
  • Unity IL2Cpp逆向实战:从元数据解析到AES密钥还原
  • 专业做日式搬家的上海公司排名及其优势参考 - 资讯快报
  • ollama升级后局域网无法访问的解决过程
  • Excel AI算法实现终极指南:无需编程掌握深度学习核心原理
  • 图神经网络与强化学习融合:电力系统暂态稳定预防控制的AI新范式
  • 新手必看!用TD8620高斯计实测永磁铁与电磁铁,附线圈匝数计算实战