安全攻防技能 30 讲
何为舟
前微博安全研发负责人
34680 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
开篇词 (1讲)
安全攻防技能 30 讲
15
15
1.0x
00:00/00:00
登录|注册

06 | XSS:当你“被发送”了一条微博时,到底发生了什么?

原理
示例
原理
示例
原理
示例
CSP
检测和过滤
编码
验证输入OR验证输出
按键记录和钓鱼
未授权操作
窃取Cookie
持久型XSS
基于DOM的XSS
反射型XSS
插入恶意JavaScript脚本
HTML的灵活性
防护方法
攻击效果
类型
产生原因
XSS攻击

该思维导图由 AI 生成,仅供参考

你好,我是何为舟。
在前面的课程中,我们重点讲解了安全的一些基础知识,更多地是从宏观的层面上来谈论安全。但安全不是一个靠宏观指导就能够落地的东西。因此,接下来我会结合真实案例中的各种安全问题,来介绍具体的安全防护手段和工具。今天,我们就先从最基础的 Web 安全开始。
在 Web 安全这个模块中,我们所谈论的 Web,是指所有基于 HTTP 或者其他超文本传输协议(RPC 等)开发的应用,包括:网页、App、API 接口等等。这类应用的共同点是:通过 HTTP 等文本协议,在客户端和服务端之间进行数据交换。客户端需要将服务端传出的数据展示渲染出来,服务端需要将客户端传入的数据进行对应的处理。而 Web 安全所涉及的正是这些应用中存在的各类安全问题。
背景介绍完了,下面我们进入今天的正题。
基于前面安全基础知识的学习,你现在通过了面试官的考核,成功进入了这家公司。某一天,公司的网页应用中发生了一件事。
有很多用户发送了同样类型的内容,而且这些内容都是一个带有诱惑性的问题和一个可以点击的链接。这些用户全部反馈说,这不是他们自己发的。前端开发表示,用户内容都是后端产生的,他不负责。后端开发表示,这些内容都是用户自己提交上来的,他也不负责。正当大家议论纷纷的时候,你作为学习过安全专栏的人,敏锐地发现了问题的原因:这是黑客发起了 XSS 攻击。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了Web安全中的XSS攻击,通过具体案例和代码示例,详细解释了XSS攻击的原理和三种类型:反射型XSS、基于DOM的XSS和持久型XSS。文章通过实例分析了这三种攻击类型的产生过程和危害性,以及黑客通过XSS攻击可能实现的恶意行为。通过对XSS攻击的深入解析,读者可以快速了解XSS攻击的原理、类型和危害,以及如何防范这些安全威胁。文章结构清晰,通过具体案例和图示,使读者更容易理解XSS攻击的复杂技术原理。此外,文章还介绍了XSS防护的方法,包括验证输入输出、编码、检测和过滤以及CSP(内容安全策略),为读者提供了全面的防护措施。通过本文的阅读,读者能够全面了解XSS攻击的危害和防护方法,为Web安全提供重要参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《安全攻防技能 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(47)

  • 最新
  • 精选
  • GitHubGanKai
    老师 使用csp 如果前端使用了cdn 或者通过script标签加载其他的第三方库,如果这些域没有在白名单下,对于加载这些不同域的资源是不是也会限制呢 ?

    作者回复: 是的。

    2020-02-17
    12
  • 1.1
    老师,像 XSS 盗 cookie 这种情况,我们只要在单点登录的应用认证成功后 Set-Cookie 时加上 HttpOnly 字段,避免 JS 用 document.cookie 读取(前端一般也不需要操作 cookie吧),是不是很大程度降低用户凭证被盗取的危害?

    作者回复: 是的。如果h5本身不需要使用cookie的话,都建议这么设置。

    2020-07-14
    9
  • GitHubGanKai
    老师,前端请求中,出于安全问题,为什么浏览器会对ajax 请求有跨域安全限制,但是像<script src='xxx'><img src='xxx'>这样的标签请求过来的数据,却没有跨域安全限制呢?

    作者回复: 这其实是一种妥协吧。网页中经常需要引用一些外部的资源,比如说图片。如果一律禁止的话,那相当于每个网站都得自己维护一套完整的资源,会很麻烦。因此,对于静态资源的访问,是一律允许的。

    2020-02-17
    8
  • 肖大妞
    您这个讲解需要一定基础的人才能看吗 我研究了半天,各种xss攻击除了存储位置的不同,并没有看到实质的区别 能不能具体的讲讲黑客从开始攻击到获取服务器端cookie的一整个过程,我并没有看的太懂。。。

    作者回复: 实质都是一样的,在页面中植入了黑客的js脚本。区别就是在于位置不同,导致传播的方式不一样。比如反射型xss需要用户点击链接,存储型xss只需要用户正常浏览页面。最终植入了js脚本后,直接通过document.cookie就可以拿到cookie,然后发送到黑客的外部接口,就可以获取到了

    2020-01-08
    2
    6
  • 程序员二师兄
    有点不太明白,黑客怎么修改 DOM 伪造登录窗口呢? 而且是正常的域名

    作者回复: 本质还是基于xss,使得浏览器执行黑客定义的js。而js是可以对页面元素进行任意的修改的。

    2020-03-24
    2
    4
  • PyGeek
    请问您觉得csrf和xss应该是一种包含关系,还是各有各的区别?

    作者回复: 各有各的区别。CSRF更多的强调跨站的攻击,即从A站点伪造用户向B站点发起请求,这样才能大大扩大传播范围。而XSS是本站内的攻击,扩散能力弱很多,但造成的危害通常会远高于CSRF。

    2020-03-23
    3
    4
  • 大坏狐狸
    JWT 那个 岂不是 有人拿了客户端的东西 就能借用被人的名义干啥事了。

    作者回复: 对于任何认证方式都一样,拿了客户端的信息,就能够盗用账号,除非要求每次操作都输入密码。因此,我们谈论认证的前提都是客户端安全的情况下。

    2020-03-27
    2
    3
  • LEON
    老师请教下,存储型XSS也能修改DOM进行XSS攻击吧?这种方法和传统的DOM XSS有什么区别?感谢

    作者回复: 存储型特点比较明确,就是攻击脚本会存储到服务器的数据库中。DOM和反射型其实比较类似,只不过一个是针对后端逻辑,一个是针对JS的前端逻辑。

    2019-12-24
    3
    3
  • 小晏子
    是这分析一下这次攻击,用户点击了链接就自动发送微博了,那么整个链路就是前端—后端—前端,而要达到这样的目的,一定是有javascript脚本被执行了,伪装的js脚本获取本地cookie后直接调用后端接口来发送微博,正好符合反射XSS的定义。对于这个问题,感觉开发运维安全都有责任,开发为什么没做安全字符检验,运维安全为什么没有对这种突然爆发的转发信息没有意识到安全问题

    作者回复: 责任肯定是都有的。问这个问题也是希望引导大家思考下安全在公司中的定位~

    2019-12-20
    3
  • 宝仔
    我觉得不应该去讨论背锅这个问题,问题核心在于怎么解决,以及各端明确未来的防范措施,下次再犯,再来定位锅的问题

    作者回复: 责任肯定是各方都有的。但锅也得有人背。尤其是如果事件影响大到某个程度,比如损失了10%的用户或者好几百万,肯定是需要有人受到惩罚的。。。

    2019-12-20
    2
    3
收起评论
显示
设置
留言
47
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部