Web 安全 — XSS 的原理和攻防

简介: Web 安全 — XSS 的原理和攻防

1、XSS 是个啥?

XSS 是跨站脚本攻击 (Cross Site Scripting),为不和层叠样式表 (Cascading Style Sheets, CSS) 的缩写混淆,故将跨站脚本攻击缩写为 XSS。恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页之时,嵌入其中 Web 里面的 Script 代码会被执行,从而达到恶意攻击用户的目的。


通俗点说,XSS 就是在一个站点,当我们用户去访问,在渲染 HTML 的过程中,出现了一些没有预期的脚本指令,脚本指令执行时就产生了一个 XSS。XSS 的攻击涉及到三方,分别是攻击者、用户以及 web 服务器,用户通过浏览器访问 web 网页,攻击者会想尽办法在用户访问页面时插入一段脚本,让用户在访问界面的时候就可以执行该脚本,这样攻击者就可以通过插入的执行脚本去获取一些用户的信息(比如说 cookie),并将其发送到攻击者自己的网站,这就是跨站。


ps:在 Vue 中具有一个 v-html 的指令,他就很容易引起这种 XSS 安全问题。

2、XSS 的危害

在真正的应用中,XSS 攻击的危害还是挺多的,比如下面罗列几种:


挂马:

攻击者会通过入侵网站,并将一个木马程序传到一个网站中,使用户在打开网页时木马程序就会运行。


盗取用户 cookie:

在网页浏览中我们常常涉及到用户登录,登录完毕之后服务端会返回一个 cookie 值。这个 cookie 值相当于一个令牌,拿着这张令牌就等同于证明了你是某个用户。

如果你的 cookie 值一旦被窃取,那么攻击者很可能直接利用你的这张令牌不用密码就登录你的账户。如果想要通过script 脚本获得当前页面的 cookie 值,通常会用到 document.cookie。

试想下如果像空间说说中能够写入XSS 攻击语句,那岂不是看了你说说的人的号你都可以登录(不过某些厂商的 cookie 有其他验证措施如:Http-Only 保证同一 cookie 不能被滥用)


劫持流量实现恶意跳转:

比如在网页中想办法插入一句像这样的语句:window.location.href="http://www.baidu.com";

那么所访问的网站就会被跳转到百度的首页,这样百度就会从中获取用户或流量上的一些收益。

导致 XSS 的主要原因是过于信任客户端提交的数据!当然,除了以上几种还有很多其他的危害,由于我本人不是专攻信息安全领域的,所以就没有再做深入了解,如有对这方面感兴趣的同学,

3、XSS 的种类

XSS 主要有两种,分别是: 反射型、存储型,下面分别介绍一下:


反射型(非持久型 XSS):服务端返回脚本,客户端执行

也就是攻击相对于访问者而言是一次性的,具体表现在我们把我们的恶意脚本通过 url 的方式传递给了服务器,而服务器则只是不加处理的把脚本“反射”回访问者的浏览器,而使访问者的浏览器执行相应的脚本。


存储型(持久型 XSS):后端存储了非法脚本,并且前端直接展示

比如留言板功能,恶意用户 A 在在用户 B 的空间留言板留言时,写的是一个含有 XSS 的评论,这个 XSS 脚本就会跟随请求发送到服务器(并存储到服务器上),用户 B 及其他用户在访问 B 的留言板时,服务器就会将恶意用户 A 的评论返回,用户 B 及其他用户一旦查看页面就会执行服务器返回的 XSS 脚本,导致一些安全性的问题。

4、XSS 防范手段

都说知己知彼方能百战不殆,知道了XSS 攻击的原理,那么防御的方法也就显而易见了。防御的主要思想是:


(1)对输入(和 URL 参数)进行 过滤,过滤掉哪些可能会导致脚本执行的相关内容,比如 、<img>、<a> 等标签。

(2)对一些常见的符号,如 <> 进行转换 编码,这样做浏览器是不会对该标签进行解释执行的,同时也不影响显示效果。

(3)对动态输出到页面的内容进行 HTML 编码,让该脚本没有办法在浏览器中执行。

                   

目录
相关文章
|
4月前
|
Web App开发 监控 安全
OSS客户端签名直传实践:Web端安全上传TB级文件方案(含STS临时授权)
本文深入解析了客户端直传技术,涵盖架构设计、安全机制、性能优化等方面。通过STS临时凭证与分片上传实现高效安全的文件传输,显著降低服务端负载与上传耗时,提升系统稳定性与用户体验。
446 2
|
21天前
|
安全 Linux iOS开发
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.9 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
202 0
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
|
3月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
354 0
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
3月前
|
存储 安全 JavaScript
Web Storage有哪些安全风险?
Web Storage有哪些安全风险?
|
5月前
|
存储 应用服务中间件 nginx
在使用Nginx之后,如何在web应用中获取用户IP以及相关原理
但总的来说,通过理解网络通信的基础知识,了解http协议以及nginx的工作方式,我们已经能在大多数情况下准确地获取用户的真实IP地址了,在调试问题或者记录日志时会起到很大的帮助。
267 37
|
10月前
|
安全 JavaScript 前端开发
阿里云先知安全沙龙(西安站) ——浅谈XSS漏洞挖掘与构造思路
本文介绍了DOM-XSS构造、运算符的威力和模板字符串妙用三个主题。通过多个实例图解,详细展示了如何利用DOM特性构造XSS攻击、JavaScript运算符在代码中的巧妙应用,以及模板字符串在开发中的灵活运用。这些内容对提升Web安全意识和编程技巧具有重要参考价值。
|
6月前
|
安全 Linux API
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.4 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
291 6
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描
|
8月前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
362 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
7月前
|
安全 大数据 数据挖掘
课时9:阿里云Web应用防火墙:全面保障网站的安全与可用性
阿里云Web应用防火墙(WAF)基于阿里巴巴十年攻防经验,提供全面的网站安全防护。它通过Web应用防护、CC攻击防护和业务风控,有效应对各类网络威胁,确保网站的安全与可用性。智能双引擎技术降低误报率,实时数据分析和虚拟补丁更新保障系统安全。WAF已成功护航多个重大活动,为企业提供高效、简便的安全解决方案。
162 0
|
10月前
|
缓存 安全 搜索推荐
阿里云先知安全沙龙(北京站) ——浅谈Web快速打点
信息收集是网络安全中的重要环节,常用工具如Hunter、Fofa和扫描工具可帮助全面了解目标系统的网络结构与潜在漏洞。遇到默认Nginx或Tomcat 404页面时,可通过扫路径、域名模糊测试、搜索引擎缓存等手段获取更多信息。AllIN工具(GitHub: P1-Team/AllIN)能高效扫描网站路径,发现敏感信息。漏洞利用则需充分准备,以应对突发情况,确保快速拿下目标站点。 简介:信息收集与漏洞利用是网络安全的两大关键步骤。通过多种工具和技术手段,安全人员可以全面了解目标系统,发现潜在漏洞,并制定有效的防御和攻击策略。