关于XSS三种攻击方式的理解:反射性,存储型,基于DOM

本文深入解析XSS(跨站脚本)攻击的三种形式:反射性、存储型和基于DOM。详细介绍了攻击原理,包括如何利用客户端浏览器解析脚本的特性进行攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于XSS三种攻击方式的理解:反射性,存储型,基于DOM

首先脚本执行需要客户端浏览器进行解析,是js脚本就交个js环境解析,或者php交给php环境解析,只有在相应环境解析才能够运行起来,就好比你在中国说英语大家不太懂,但是去了英国说别人就懂一样,这是你跟环境之间约定好的规则。而语言之间一般用特有的字符进行标识,比如js的写法就是用把数据封装起来,这样客户端浏览器收到这样的数据后就知道去交给javascript的语言环境来解析。那么客户端浏览器什么时候做这件事呢,一般情况下只有在接收到服务器的数据的时候会进行解析,如果你只是随便在浏览器上打字它是不会解析的,由此引出两种xss攻击,一种是通过客户端先提交给服务器的数据中带有脚本,因为你写在浏览器上它不会解析,所以就先提交给服务器,而服务器返回的数据中也就有了之前的脚本,这时浏览器就会进行解析并执行脚本了,这种xss攻击叫做反射性攻击。还有一种是通过直接修改服务器端的html代码,这样服务器无论发给谁就都携带这段脚本,并被接收的浏览器解析执行了,这种xss攻击叫做存储型攻击。但是这两种攻击有一个共同的特点就是都需要通过服务器端,那么是否可以直接在本地浏览器解析呢?可以,这就引出DOM的概念,什么是DOM呢?比如你现在有一个需求你想改你的qq签名,这个需求本质上就是改html的标签,但html是服务器端发给你的,你没办法进行修改,那么怎么解决呢,这就引入了DOM来提供一个接口,DOM就是把你接收到的html按照树状节点的格式保存,把每一个可以更改的元素看成一个节点,就像建立了一个html的目录,这样你想修改html的时候只需要查找目录调用这些节点所代表的变量并赋值就可以了。而通过dom修改变量时需要js来解析,所以就可以通过这一点来注入基于DOM的XSS脚本,因为当你通过dom修改html的时候,浏览器就会执行解析,根本就不用通过服务器发送数据来触发解析了,所以就可以在客户端输入的时候就进行XSS攻击,其实相当于浏览器给自己发送了一份数据并自己解析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值