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

2023-05-16

关于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攻击,其实相当于浏览器给自己发送了一份数据并自己解析。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐