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. 12_Sensor简单实例

    列出Android手机所支持的Sensor. package com.example.sensorlist; import java.util.List; import android.app.Act ...

  2. shiro利用过期时间,解决用户冻结踢出问题

    背景 shiro中需要冻结某个用户,但是此时此刻这个用户在线,如果冻结只是改变状态的话,只会导致用户不满,所以要改变这个办法. 在查找过程中发现都是告诉shiro写自定义过滤器,那么我如果自定义过滤器 ...

  3. 【佛山市选2013】JZOJ2020年8月7日T4 排列

    [佛山市选2013]JZOJ2020年8月7日T4 排列 题目 描述 一个关于n个元素的排列是指一个从{1, 2, -, n}到{1, 2, -, n}的一一映射的函数.这个排列p的秩是指最小的k,使 ...

  4. 20200428_在centos7.2上挂载ntfs和备份文件到移动硬盘

    [root@localhost ~]# fdisk -l 磁盘 /dev/sda:2000.4 GB, 2000398934016 字节,3907029168 个扇区 - 设备 Boot Start ...

  5. 第9.12节 Python中其他文件操作方式

    一. 引言 本章老猿主要介绍了Python 内置io模块的文件操作相关功能,其实除了内置io模块可以进行文件操作外,Python的不同模块还提供了多种文件操作方式,下面简单将这些模块和方法介绍一下. ...

  6. 我摊牌了,大厂面试Linux就这5个问题

    说真的,这就是<我想进大厂>系列第八篇,但是Linux的问题确实很少,就这样,强行编几个没有营养的问题也没啥意义. 1.CPU负载和CPU利用率的区别是什么? 首先,我们可以通过uptim ...

  7. element ui中循环出来的表格勾选问题

    需求是这样的,一个房主屋里面有多个电表,每一个表是一个账户,一次只能给一个账户缴费,在点击go按钮进行缴费,这个时候判断是否跨表勾选,跨表格勾选则弹窗提示,反之符合需求,走缴费逻辑 上代码 <! ...

  8. 熊猫全球站视点关注,韩国投入47亿韩元开发区块链等ICT技术

    韩国科学技术信息通信部评选出18个包括区块链项目在内的政府扶持项目,为信息通信(ICT)创新企业提供技术开发支持. 熊猫全球站获悉,韩国政府计划分期选拔第一阶段(前期策划阶段3个月)和第二阶段(技术开 ...

  9. Kubernetes Python Client 初体验之node操作

    今天讲一下k8s中对于各个实物节点node的操作. 首先是获取所有nodes信息: self.config.kube_config.load_kube_config(config_file=" ...

  10. (干货)构建镜像之docker commit

    Docker提供了两种构建镜像的方法:docker commit命令喝Dockerfile构建文件. docker commit   不推荐 (1).这是手工构建镜像的方式,容易出错,效率低且可重复性 ...