`
ihyperwin
  • 浏览: 425639 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

HttpOnly介绍

 
阅读更多

在Web安全领域,跨站脚本攻击时最为常见的一种攻击形式,也是长久以来的一个老大难问题,而本文将向读者介绍的是一种用以缓解这种压力的技术,即HTTP-only cookie。 

一、XSS与HTTP-only Cookie简介 
跨站点脚本攻击是困扰Web服务器安全的常见问题之一。跨站点脚本攻击是一种服务器端的安全漏洞,常见于当把用户的输入作为HTML提交时,服务器端没有进行适当的过滤所致。跨站点脚本攻击可能引起泄漏Web 站点用户的敏感信息。为了降低跨站点脚本攻击的风险,微软公司的Internet Explorer 6 SP1引入了一项新的特性。 

这个特性是为Cookie提供了一个新属性,用以阻止客户端脚本访问Cookie。 
像这样具有该属性的cookie被称为HTTP-only cookie。包含在HTTP-only cookie中的任何信息暴露给黑客或者恶意网站的几率将会大大降低。下面是设置HTTP-only cookie的一个报头的示例: 

Html代码  收藏代码
  1. Set-Cookie: USER=123expires=Wednesday, 09-Nov-99 23:12:40 GMT; HttpOnly  


上面我们介绍了HTTP-only Cookie;下面我们开始向读者介绍跨站点脚本攻击、允许通过脚本访问的cookie所带来的潜在危险以及如何通过HTTP-only来降低跨站点脚本攻击的风险。   
跨站点脚本攻击是一种服务器端常见的安全漏洞,它使得黑客可以欺骗用户从而导致用户在某个Web 站点上的敏感信息的泄漏。下面通过一个简单的示例来解释一个跨站点脚本攻击的相关步骤。 

二、跨站点脚本攻击示例 
为了解释跨站点脚本攻击是如何被黑客利用的,我们假想了下面的一个例子: 
A证券公司运行了一个Web 站点,该站点允许您跟踪某股票的最新价格。为了提高用户体验,登录A证券公司的Web 站点之后,你将被重定向到www.azhengquan.com/default.asp?name = < script > evilScript()< / script >张三,并且有一个服务器端脚本生成一个欢迎页面,内容为“欢迎您回来,张三!”。 

你的股票数据被存放在一个数据库中,并且Web 站点会在你的计算机上放置一个cookie,其中包含了对这个数据库非常重要的数据。每当你访问A证券公司站点时,浏览器都会自动发送该cookie。 

一个黑客发现A证券公司公司的Web 站点存在一个跨站点脚本攻击缺陷,所以他决定要利用这点来收集你所持股票的名称等敏感信息。黑客会您你发送一封电子邮件,声称您中奖了,并且需要点击某个链接如“点击这里”来领取奖品。注意,该链接将超链接到www.azhengquan.com/default.asp?name=< script >evilScript()< / script > 当您点击这个链接,映入眼帘您的将是“欢迎您回来!”—— 等等,您的姓名哪里去了?事实上,单击电子邮件内的链接之后,你实际上就是在通知A证券公司公司的Web 站点,你的姓名是< script  > evilScript()<  /script >。Web服务器把用这个“名字”生成的HTML返回给你,但是你的浏览器会把这个“名字”作为脚本代码解释,脚本执行后便出现了我们前面看到的一幕。一般情况下,支持客户端脚本是浏览器的典型功能之一。如果这个脚本命令浏览器向黑客的计算机发回一个cookie,即使这个cookie包含有您的股票的有关信息,您的浏览器也会老老实实地执行。最后,那些来自A证券公司的Web 站点的指令获取了那个包含敏感信息的cookie。 

下面是跨站脚本攻击的示意图,它详细的展示了攻击的五个步骤。首先,用户点击了黑客发来的电子邮件中的一个嵌入的链接(第1步)。由于跨站点脚本攻击缺陷的原因,这样会导致用户的浏览器向Web 站点发送一个请求(第2步);服务器端根据该请求会生成一个包含恶意脚本的响应,并将其发回给用户的浏览器(第3步)。当用户的机器执行返回的恶意代码时(第4步),就会将用户的敏感数据发送给黑客的计算机(第5步)。 
 

我们可以看到,这个过程只需要用户单击了一个链接,然后就会有指令发送给Web服务器,然后Web服务器生成一个嵌入恶意脚本的网页;浏览器运行这个来自受信任的源的脚本,却致使信息泄漏给黑客的计算机。跨站点脚本攻击有许多不同的形式,这里只是其中的一种。 

三、用HTTP-only Cookie保护数据 

为了缓解跨站点脚本攻击带来的信息泄露风险,Internet Explorer 6 SP1为Cookie引入了一个新属性。这个属性规定,不许通过脚本访问cookie。使用HTTP-only Cookie后,Web 站点就能排除cookie中的敏感信息被发送给黑客的计算机或者使用脚本的Web站点的可能性。 

Cookie通常是作为HTTP 应答头发送给客户端的,下面的例子展示了相应的语法(注意,HttpOnly属性对大小写不敏感): 

Html代码  收藏代码
  1. Set-Cookie: =[; =]  
  2. [; expires=][; domain=]  
  3. [; path=][; secure][; HttpOnly]  


即使应答头中含有HttpOnly属性,当用户浏览有效域中的站点时,这个cookie仍会被自动发送。但是,却不能够在Internet Explorer 6 SP1中使用脚本来访问该cookie,即使起初建立该cookie的那个Web 站点也不例外。这意味着,即使存在跨站点脚本攻击缺陷,并且用户被骗点击了利用该漏洞的链接,Internet Explorer也不会将该cookie发送给任何第三方。这样的话,就保证了信息的安全。 
注意,为了降低跨站点脚本攻击带来的损害,通常需要将HTTP-only Cookie和其他技术组合使用。如果单独使用的话,它无法全面抵御跨站点脚本攻击。 

分享到:
评论

相关推荐

    xss防御之php利用httponly防xss攻击

    主要介绍了xss防御之php利用httponly防xss攻击,下面是PHP设置HttpOnly的方法,需要的朋友可以参考下

    .net 获取浏览器Cookie(包括HttpOnly)实例分享

    介绍了.net 获取浏览器Cookie(包括HttpOnly)实例,有需要的朋友可以参考一下

    Linux服务器下nginx的安全配置详解

    本篇文章主要介绍了Linux服务器下nginx的安全配置详解,Nginx在很多高流量网站上得到了应用,有需要的朋友可了解一下。

    C#清除WebBrowser中Cookie缓存的方法

    主要介绍了C#清除WebBrowser中Cookie缓存的方法,涉及C#针对WebBrowser控件的操作技巧,非常简单实用,需要的朋友可以参考下

    飞采 ninidown 信息采集 v1.1

    飞采(NiniDown) 是一款基于.NET编写的多线程...对采用函数生成的分页地址也可以采集,支持简单表达式计算支持POST数据、Cookie捕获,通过内置浏览器可以捕获特殊cookie,如HttpOnly类型的ASP.NET_SessionId等,方便创建

    Springboot中登录后关于cookie和session拦截问题的案例分析

    主要介绍了Springboot中登录后关于cookie和session拦截案例,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    Web安全深度剖析(张柄帅)

    7.5.2 HttpOnly 158 7.6 小结 160 第8章 命令执行漏洞 161 8.1 OS命令执行漏洞示例 161 8.2 命令执行模型 162 8.2.1 PHP命令执行 163 8.2.2 Java命令执行 165 8.3 框架执行漏洞 166 8.3.1 Struts2代码执行漏洞 166 ...

    记事狗微博系统 4.7.4 Build 20140922 GBK.zip

    新增设置Cookie时加上httponly参数,加强安全性 新增后台设置登录状态的Cookie时加上IP参数,加强安全性 新增IOS客户端消息推送的功能 新增对附件外部存储空间的直接物理删除 新增前台频道页显示该频道的管理员...

    记事狗微博系统 4.7.4 Build 20140922 UTF8.zip

    新增设置Cookie时加上httponly参数,加强安全性 新增后台设置登录状态的Cookie时加上IP参数,加强安全性 新增IOS客户端消息推送的功能 新增对附件外部存储空间的直接物理删除 新增前台频道页显示该频道的管理员...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    本项目详细介绍请看:http://www.sojson.com/shiro (强烈推荐) Demo已经部署到线上,地址是http://shiro.itboy.net, 管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。 PS:你可以注册自己的帐号...

Global site tag (gtag.js) - Google Analytics