XSS攻击,跨站脚本攻击Cross Site Scripting,为了不和样式表的CSS的缩写混淆,所以跨站脚本攻击缩写为XSS。
它是指攻击者在网页中嵌入恶意脚本程序,当用户打开网页时,恶意脚本就开始在用户客户端的浏览器上执行,以盗取客户端的cookie、用户名密码,下载执行病毒木马程序,甚至获取客户端admin权限。
1、XSS原理
举例页面表单,用来向服务端提交用户的昵称信息:
<input type="text" name="nick" value="xingxing" >
表单nick的内容来自用户的输入,当用户输入的不是一个正常的昵称字符串,而是"/><script>alert("ur a fool")</script><!-时,此时页面则变成下面的内容:
<input type="text" name="nick"value=""/><script>alert("u r afool")</script><!-" />
它会自动弹出一个消息框u r afool,如图所示,这个弹框不会造成什么危害,而攻击的危害取决于用户输入的脚本。
2、XSS防范
XSS之所以会发生,是因为用户输入的数据变成了执行代码。所以我们需要对用户输入的数据进行HTML转义,将其中的“尖括号”、“单引号”、“引号”之类的特殊字符进行转义编码:
HTML中的需要转义字符
字符 | 转义字符 | 描述 |
& | & | 和 |
< | < | 小于号 |
> | > | 大于号 |
“ | " | 双引号 |
‘ | ' | 单引号 |
空格 | | 空格 |
© | © | 版权符 |
® | ® | 注册符 |