XSS漏洞修复心得

什么是XSS攻击

  举个例子,简单说。
  假如CSDN的文章评论有XSS漏洞。黑客在一篇正常的博客下面评论一段有危险脚本的评论,当你的浏览器打开这篇博客,并加载到那条有问题的评论时,会自动执行危险脚本,这个脚本会盗取你csdn当前的cookie等一些操作。

一次XSS漏洞修复经历

  周一上班,收到安全部门发来的一个工单,说我们的应用A存在XSS漏洞。但是我记得这个应用的XSS漏洞之前修复过。
  仔细看了下漏洞复现,这次比较高级,他用了HTTP工具叫Burp Suite,我在另一篇博客中也转载了Burp Suite的内容,地址:https://blog.csdn.net/qq1332479771/article/details/104798524。

先说一下应用A的正常操作流程:

  1. 用户打开应用A的页面时,会将一些数据填充到form表单的hidden类型的input框中;
  2. 用户在form表单中再勾选一些按钮,输入一段文本,然后提交这些信息;
  3. 后端接收这个form数据,并将这些数据存入数据库中。

  以前,XSS漏洞发生在用户的输入文本中,用户在自定义数据的文本框中输入问题js脚本,便会导致在其他页面展示时,执行问题js脚本。这个问题已经被修复。
  这次,安全工程师在提交数据时,用HTTP工具修改了hidden类型的input中的字符串数据。而这些数据也会入库,并在其他页面展示的,便导致了这次的XSS漏洞。

如何处理

  发现了问题原因处理起来便很简单,hidden类型input框的数据是默认已知的,这些数据不在通过form表单从前端获取,而是在数据入库时,通过再次调用接口补全这些数据。

对于XSS漏洞,写代码时应该注意的地方

  所有通过HTTP接口获取的字符串类型的数据,若需要再次展示在其他应用的其他页面,均需要考虑XSS问题。

联想到CSDN的自定义博客模块功能

  记得以前CSDN支持用户自定义编辑博客模块,里面可以自定义任何内容,包括jsiframe,我当时自定义了一个Google搜索本站的功能,用的 iframe组件,也有人将自己的微博嵌入进来。

  后来CSDN不让在里面放JS,再后来到现在这个自定义博客模块只对会员和专家开发放了。

  用安全的眼光来看,以前是极其危险的。黑客在自己的博客的自定义专栏植入危险脚本,那么所有访问他博客的用户均可以被他盗取cookie,或者被他利用执行DDos等操作。

你可能感兴趣的:(前端技术)