XSS(跨站脚本攻击),聊两句,五毛的。

XSS的危害:

  • 窃取Cookie,盗用用户身份信息

这玩意儿是大多数XSS的目标,也好解决,可以先治个标,直接设置HttpOnly=true ,即不允许客户端脚本访问,设置完成后,通过js去读取cookie,你会发现document.cookie 无法读取到被标识为HttpOnly的Cookie内容了。

  • 配合其他漏洞,如CSRF(跨站请求伪造)

这个其实就没那么好解决了,因为XSS利用用户身份构造的请求其实对于服务端来说是合法的。比如说咱在B站上传了一条视频,发现没几个人点赞,于是动了歪心思,打开控制台找到了投币点赞的接口,然后拿到了对应的请求参数。自己构造了一条投币请求,然后诱导其他人点击含有这个脚本的页面为咱的视频投币,这样就完成了一套攻击流程。

不用尝试了,没用的。别问我怎么知道的 =。=。

要是没做校验的话,那这就是一个高危漏洞,还传啥视频啊,赶紧发邮件给阿B领赏金去啊。

  • 广告

只要能发起XSS,我就能往页面里插广告,啥权限都不要,但是能引发这个问题的原因主要有两个。

  1. XSS。
  2. 用户自己安装外部脚本。

使用外部脚本一定要保证脚本来源的可信性,脚本的安全性。如果脚本是恶意的,那么他所能做的可就不只是弹弹广告这么简单了,替换个按钮,诱导点击钓鱼页面,替换某一条搜索结果,这都是可能的。

XSS扫描及防范

XSS风险有些是可以通过code review发现的,比如:

let result = document.getElementById('test');
result.innerHTML = await getInfo();

这段代码很容易看到风险位置——innerHTML ,如果后端返回的数据中包含恶意的代码片段,那么就能够被攻击。所以在使用Vue和React框架时,需要评估是否真的需要使用v-htmldangerouslySetInnerHTML 功能,在前端的render(渲染)阶段就避免innerHTMLouterHTML [1]

如果不使用框架,那就避免直接使用innerHTML 就好了。

至于review时无法发现的风险,那就交给扫描器吧。

防范XSS,除了少使用、不使用innerHTML 外,还可以设置严格的CSP[2],限制用户的输入长度。

XSS是一个安全问题,它不只是前端的职责,这也是所有RD和QA的职责。

前端过滤用户输入后发给后端,后端如果不做处理存入数据库,那么这就是一个攻击点:直接抓前端的包,重新组装一下参数,发给后端,完成存储型XSS第一步,用户再访问这部分内容,就完成了一次XSS。

QA的总能搞出来一些奇奇怪怪的payload(亦称测试用例),这些可能都是RD未能考虑到的方面。

附一段白名单过滤用户输入的代码,点击GitHub查看。


  1. 如何防止xss攻击

  2. 内容安全策略

聊两句XSS(跨站脚本攻击)的更多相关文章

  1. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  2. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  3. MySQL优化聊两句

    原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html MySQL优化聊两句 MySQL不多介绍,今天聊两句该如何优化以及从哪些方面入手, ...

  4. xss(跨站脚本攻击),crsf(跨站请求伪造),xssf

    我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...

  5. web应用程序安全攻防---sql注入和xss跨站脚本攻击

    kali视频学习请看 http://www.cnblogs.com/lidong20179210/p/8909569.html 博文主要内容包括两种常见的web攻击 sql注入 XSS跨站脚本攻击 代 ...

  6. 解析如何防止XSS跨站脚本攻击

    2012-11-20 09:03 (分类:网络安全) 这些规则适用于所有不同类别的XSS跨站脚本攻击,可以通过在服务端执行适当的解码来定位映射的XSS以及存储的XSS,由于XSS也存在很多特殊情况,因 ...

  7. XSS跨站脚本攻击与CSRF跨站请求伪造攻击的学习总结(转载)

    转载自 https://blog.csdn.net/baidu_24024601/article/details/51957270 之前就了解过这方面的知识,但是没有系统地总结.今天在这总结一下,也让 ...

  8. PHP漏洞全解(四)-xss跨站脚本攻击

    本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站 ...

  9. JAVA覆写Request过滤XSS跨站脚本攻击

    注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. ...

随机推荐

  1. 基于openeuler aarch_64 下,从源码的角度搭建Tensorflow

    为什么从源码编译Tensorflow? 安装过的人们都知道如果 pip install tensorflow 的话会报错Your CPU supports instructions that this ...

  2. Image Inpainting with Learnable Bidirectional Attention Maps

    Image Inpainting with Learnable Bidirectional Attention Maps pytorch 引言 部分卷积(PConv)的缺陷: 1 将含有1个有效值像素 ...

  3. D. Numbers on Tree(构造)【CF 1287】

    传送门 思路: 我们需要抓住唯一的重要信息点"ci",我的做法也是在猜想和尝试中得出的,之后再验证算法的正确性. 我们在构造中发现,如果树上出现了相同的数字,则会让树的构造变得不清 ...

  4. 码农飞升记-Java是什么?

    1.Java概述 Java 原名 Oak 是 Sun Microsystems 公司的 James Gosling 及其团队于 1995 年 5 月推出的 Java 程序设计语言 和 Java 平台 ...

  5. 浅尝 Elastic Stack (三) Logstash + Beats

    本文使用 Filebeat,如果没有安装需要安装: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat- ...

  6. Centos7 之间的文件拷贝

    环境: 内网了两台cenots7主机 scp命令 scp [参数] [原路径] [目标路径] scp -P 22022 /home/file.war root@192.168.253.172:/hom ...

  7. go中位运算

    左移右移 const ( // 将 1 左移 100 位来创建一个非常大的数字 // 即这个数的二进制是 1 后面跟着 100 个 0 Big = 1 << 100 // 再往右移 99 ...

  8. java视频格式转换

    项目中需要对各种视频格式转码为mp4格式,试了好多办法,最后使用ffmpeg 工具完美转码,ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) 链接 ...

  9. 移动端H5开发中的常见问题处理

    1.问题之合成海报: 功能技术:http://html2canvas.hertzen.com 问题描述:合成模糊.合成区域内容错位,合成不完整,合成边缘白条等. 解决方案:如有页面布局正常合成错位的, ...

  10. 安全声明标记语言SAML2.0初探

    目录 简介 SAML的构成 SAML的优势 SAML是怎么工作的 SP redirect request; IdP POST response SP POST Request; IdP POST Re ...