白话:XSS攻击(Cross Site Scripting)

时间:2023-01-23 14:52:38

XSS攻击是什么?

XSS攻击:跨站脚本攻击(Cross Site Scripting)
为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS

XSS攻击的过程:
白话:XSS攻击(Cross Site Scripting)

例子:

表单内容:

<input type="text" name="nick">

当用户输入:

"/><script>alert("haha");</script><!--

当服务端检测用户输入不合法,需要返回提交页面让用户重新输入的时候:

<input type="text" name="nick" value=""/><script>alert("haha");</script><!--">

或者当需要将用户的信息来展示的时候

<p>"/><script>alert("haha");</script><!--</p>

如此造成的结果将是:

白话:XSS攻击(Cross Site Scripting)

这个结果看似不是特别严重,但是我们可以将输入再更改一下:
当输入:

<p>"/><script>while(1){alert("haha");}</script><!--</p>

这样的结果将导致弹窗永远无法停止,从而导致页面无法正常加载,用户无法正常操作

如果用户输入其他更具破坏力的脚本,那麼你只要一访问这个网站页面,将会立马中招,简直就是躺着就中枪。

XSS攻击防御

对于这样的攻击,我们应该怎样防御呢?

我们可以知道,之所以会受到这样的攻击,原因是浏览器错将该以文本方式显示的内容,当成代码来执行了,那么有什么可以避免这种错误呢?

最简单的方法就是,将用户输入的内容转义,使其变成浏览器不可执行的文本,转换方式如下:

 < -----> &lt;
> -----> &gt;
' -----> &amp;
" -----> &quot;

经过转换后,上面输入的内容在保存的时候将为:

前端用户输入:

"/><script>alert("haha");</script><!--

经后台转换后:

&quot;/&gt;&lt;script&gt;alert("haha");&lt;/script&gt;&lt;!--

当前台显示的时候,就如下:

"/><script>alert(“haha”);</script><!–

至此,相信你已经基本了解XSS攻击了,当然,关于XSS攻击更加高级的知识还期待你去深入探索,由于水平有限,这里就不多讲了,有关更多XSS知识,点击:http://netsecurity.51cto.com/art/201408/448305_all.htm