小心XSS 跨站脚本漏洞已是web漏洞王

日期: 2008-10-13 作者:xiaohai 来源:TechTarget中国 英文

  Web的安全问题越来越严重,漏洞总是在不停的出现,而我们以前一直在做的都是打补丁,就这样漏洞、补丁、补丁、漏洞的恶性循环着。其实很多的攻击都是可以预防的,只要我们做好前期的工作。

  根据最新的统计显示,跨站脚本、信息泄漏和SQL注入这三个安全漏洞是最容易受到攻击的,而跨站脚本攻击XSS又在其中占了一半以上的份额,所以这里我们要谈谈如何做好基本的对付XSS的防御工作,让我们的Web环境更加安全。

  XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。

  我们先来了解一下XSS主要的攻击手段:

  1、依赖跨站漏洞,需要在被攻击网站的页面种入脚本的手法,包括Cookie盗取,通过javascript获取被攻击网站种下的cookie,并发送给攻击者,从cookie中提取密码等隐私,利用cookie伪造session,发起重放攻击。另外还有包括Ajex信息盗取,通过javascript发起ajex请求,从ajex结果中获取隐私,模拟用户完成多页表单。

  2、不依赖跨站漏洞的手法,包括单向HTTP动作,通过img.src等方法发起跨站访问,冒充被攻击者执行特权操作。但是很难拿到服务器的返回值。还包括双向HTTP动作,如果服务器产生一段动态的script,那么可以用script.src的方法发起跨站访问并拿到服务器的返回值。

  下面看看具体的防御措施:

  1、防堵跨站漏洞,阻止攻击者利用在被攻击网站上发布跨站攻击语句

  不可以信任用户提交的任何内容,首先代码里对用户输入的地方和变量都需要仔细检查长度和对”<”,”>”,”;”,”’”等字符做过滤;其次任何内容写到页面之前都必须加以encode,避免不小心把html tag弄出来。这一个层面做好,至少可以堵住超过一半的XSS攻击。

  2、Cookie防盗

  首先避免直接在cookie中泄露用户隐私,例如email、密码等等。其次通过使cookie和系统ip绑定来降低cookie泄露后的危险。这样攻击者得到的cookie没有实际价值,不可能拿来重放。

  3、尽量采用POST而非GET提交表单

  POST操作不可能绕开javascript的使用,这会给攻击者增加难度,减少可利用的跨站漏洞。

  4、严格检查refer

  检查http refer是否来自预料中的url。这可以阻止第2类攻击手法发起的http请求,也能防止大部分第1类攻击手法,除非正好在特权操作的引用页上种了跨站访问。

  5、将单步流程改为多步,在多步流程中引入效验码

  多步流程中每一步都产生一个验证码作为hidden表单元素嵌在中间页面,下一步操作时这个验证码被提交到服务器,服务器检查这个验证码是否匹配。首先这为第1类攻击者大大增加了麻烦。其次攻击者必须在多步流程中拿到上一步产生的效验码才有可能发起下一步请求,这在第2类攻击中是几乎无法做到的。

  6、引入用户交互

  简单的一个看图识数可以堵住几乎所有的非预期特权操作。

  7、只在允许anonymous访问的地方使用动态的javascript。

  8、对于用户提交信息的中的img等link,检查是否有重定向回本站、不是真的图片等可疑操作。

  9、内部管理网站的问题

 很多时候,内部管理网站往往疏于关注安全问题,只是简单的限制访问来源。这种网站往往对XSS攻击毫无抵抗力,需要多加注意。

  虽然XSS的攻击很灵活,只要我们能做好上述几点,是可以组织大部分XSS的,再及时打好补丁可以最大程度的减少来自跨站脚本攻击XSS的威胁

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐