安全攻防技能30讲
何为舟
前微博安全研发负责人
立即订阅
2842 人已学习
课程目录
已更新 8 讲 / 共 30 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 别说你没被安全困扰过
免费
安全基础概念 (5讲)
01 | 安全的本质:数据被窃取后,你能意识到问题来源吗?
02 | 安全原则:我们应该如何上手解决安全问题?
03 | 密码学基础:如何让你的密码变得“不可见”?
04 | 身份认证:除了账号密码,我们还能怎么做身份认证?
05 | 访问控制:如何选取一个合适的数据保护方案?
Web安全 (2讲)
06 | XSS:当你“被发送”了一条微博时,到底发生了什么?
07 | SQL注入:明明设置了强密码,为什么还会被别人登录?
安全攻防技能30讲
登录|注册

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

何为舟 2019-12-20
你好,我是何为舟。
在前面的课程中,我们重点讲解了安全的一些基础知识,更多地是从宏观的层面上来谈论安全。但安全不是一个靠宏观指导就能够落地的东西。因此,接下来我会结合真实案例中的各种安全问题,来介绍具体的安全防护手段和工具。今天,我们就先从最基础的 Web 安全开始。
在 Web 安全这个模块中,我们所谈论的 Web,是指所有基于 HTTP 或者其他超文本传输协议(RPC 等)开发的应用,包括:网页、App、API 接口等等。这类应用的共同点是:通过 HTTP 等文本协议,在客户端和服务端之间进行数据交换。客户端需要将服务端传出的数据展示渲染出来,服务端需要将客户端传入的数据进行对应的处理。而 Web 安全所涉及的正是这些应用中存在的各类安全问题。
背景介绍完了,下面我们进入今天的正题。
基于前面安全基础知识的学习,你现在通过了面试官的考核,成功进入了这家公司。某一天,公司的网页应用中发生了一件事。
有很多用户发送了同样类型的内容,而且这些内容都是一个带有诱惑性的问题和一个可以点击的链接。这些用户全部反馈说,这不是他们自己发的。前端开发表示,用户内容都是后端产生的,他不负责。后端开发表示,这些内容都是用户自己提交上来的,他也不负责。正当大家议论纷纷的时候,你作为学习过安全专栏的人,敏锐地发现了问题的原因:这是黑客发起了 XSS 攻击。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《安全攻防技能30讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(10)

  • return
    学到了,很透彻, 写代码的时候得注意啊。
    2019-12-20
    3
  • 冯玉鹏
    关于问题,到底应该谁背锅,应该是一个系统架构层面的问题,而不是单纯的前后端,如果一定要定位到前后端我认为应该是都有问题。
    2019-12-20
    1
  • qinsi
    不能只在输出时验证用户数据吧?比如攻击者提交了sql注入的数据,不去验证直接存数据库,然后就没有然后了

    作者回复: 这一讲只关注xss,sql注入是下一讲的内容哈~

    2019-12-22
  • 我来也
    字符串替换的那个,如果不是替换为空字符串,而是替换成一个空格,那是不是就安全了呢?

    作者回复: 也许是,不过最终的安全性,还是得看具体的场景。比如,万一替换了过后,还加了个strip呢。。

    2019-12-20
  • makawoyi
    反射型XSS,老师我这里的疑问 最开始是如何进行传播的呢?由黑客本人编写一条URL诱使用户点击,之后获取到用户的Cookie后通过JavaScript脚本再自动发送一条微博进行传播吗

    安全事件应当加强人员安全意识,之后时尽可能使用上述提出的安全防护方式进行防护

    作者回复: 是的,就是通过发微博的形式进行再次传播。

    2019-12-20
  • tt
    不要相信用户的输入。那么前端要处理自用户的输入么?要。后端要处理用户的输入么?也要。没有正确处理,就有责任。

    微博的例子是不是存储行XSS攻击呢?A用户发送的微博中被嵌入了恶意脚本,另外一个用户B浏览此内容的时候,因为已经登陆了,可以直接用自己的身份(Token或cookes)直接发布到服务器上

    作者回复: 不算存储型XSS,因为传播是因为微博的内容是一个反射型XSS链接。而这个内容本身实际不会执行脚本,需要用户点击才能发起XSS。

    2019-12-20
  • fuyuyu
    1.持久型 XSS;显示时验证输出,对用户的请求进行白名单检测和过滤,再加上csp。
    2.安全维护人人有责,相关人员都应意识到安全的重要性,预防胜于治疗。
    2019-12-20
  • 小晏子
    是这分析一下这次攻击,用户点击了链接就自动发送微博了,那么整个链路就是前端—后端—前端,而要达到这样的目的,一定是有javascript脚本被执行了,伪装的js脚本获取本地cookie后直接调用后端接口来发送微博,正好符合反射XSS的定义。对于这个问题,感觉开发运维安全都有责任,开发为什么没做安全字符检验,运维安全为什么没有对这种突然爆发的转发信息没有意识到安全问题

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

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

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

    2019-12-20
  • Cy23
    我好像学到点怎么攻击别人,你们呢

    作者回复: 同学,未经授权发起攻击有法律风险,建议不要冒险~

    2019-12-20
    1
收起评论
10
返回
顶部