`
ihyperwin
  • 浏览: 434693 次
  • 性别: 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和其他技术组合使用。如果单独使用的话,它无法全面抵御跨站点脚本攻击。 

分享到:
评论

相关推荐

    cookie设置httpOnly和secure属性实现及问题

    #### 二、属性介绍 ##### 1. `secure`属性 - **定义**: 当Cookie设置为`secure`时,意味着这个Cookie只会在HTTPS连接中被浏览器传递给服务器。如果当前连接是HTTP而非HTTPS,则浏览器不会发送该Cookie。 - **作用**:...

    cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击.zip_js设置cookie值

    本文将详细介绍HttpOnly属性的作用,以及Java和PHP后台如何设置HttpOnly属性到浏览器的Cookie。 **HttpOnly属性详解** HttpOnly属性是Cookie的一个扩展,其主要目的是增强对XSS攻击的防护。当一个Cookie被设置为...

    httpwebreqeust读取httponly的cookie方法

    本文将详细介绍如何在C#中使用`HttpWebRequest`读取`HttpOnly`的Cookie。 首先,`HttpWebRequest`对象本身并不能直接读取响应头中的`Set-Cookie`字段,尤其是`HttpOnly`标记的Cookie。这是因为`HttpOnly` Cookie...

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

    下面,我们将详细介绍如何使用 .net 获取浏览器 Cookie,包括 HttpOnly 类型的 Cookie。 一、接口文件 在获取浏览器 Cookie 之前,我们需要定义一些枚举类型和 DLL 导入函数。这些枚举类型和 DLL 导入函数将帮助...

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

    总结来说,文章通过介绍具体的API调用和代码实现,展示了在.NET环境下获取HttpOnly Cookie的可行方法。了解和使用这些技术能够帮助开发者在特定情况下更好地管理Cookie,但同时也提醒了开发者在使用这些技术时需要...

    第九节 cookie的httponly设置-01

    Cookie 的介绍 Cookie 是一种客户端存储机制,由 Web 服务器保存在用户浏览器(客户端)上的小文本文件。它可以包含有关用户的信息,如用户名、密码等。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息...

    Set-Cookie: JSESSIONID=8AB51DC4244907FD9EBB063C7FD73CBA; Path=/; HttpOnly

    本文将介绍如何解决 Cookie 路径属性暴露问题。 Cookie 路径属性的危险 在服务器中的项目中,如果 Cookie 中的路径属性没有被正确设置,可能会泄露项目路径,导致外部攻击。例如,在某些 Web 应用程序中,如果 ...

    Extjs 关于 cookie的操作

    ### Extjs 中关于 Cookie 的操作 #### 一、引言 在 Web 开发中,Cookie 是一种常用的数据...通过以上介绍,开发者应该能够熟练掌握在 Extjs 中如何利用 Cookie 进行数据的存储与读取,从而提高应用程序的用户体验。

    Cookie介绍ppt

    ### Cookie介绍及应用 #### 一、Cookie的基本概念与作用 **Cookie** 是一种轻量级的数据存储技术,主要用于在用户的计算机上存储少量信息。它由服务器生成,并发送到用户的浏览器,然后浏览器会将该信息存储在本地...

    如何在SpringBoot中使用Cookies程序员节日快乐甜点送上.docx

    总结,本文详细介绍了在Spring Boot中如何操作Cookies,包括读取、设置、删除以及设置过期时间和安全性和HttpOnly属性。通过这些技巧,你可以更好地管理Web应用中的用户会话和数据交互。希望这个甜点般的教程对你...

    SpringSecurity框架下实现CSRF跨站攻击防御的方法

    本文将详细介绍如何在SpringSecurity框架下实现CSRF跨站攻击防御。 什么是CSRF? CSRF是一种网络攻击方式,也可以说是一种安全漏洞,这种安全漏洞在web开发中广泛存在。CSRF攻击方式通常是攻击者向用户发送留言或...

    Jetty配置支持https

    本文将详细介绍如何在Jetty中配置HTTPS,并生成受信的网站证书。 #### 二、Jetty HTTPS配置步骤 ##### 1. 生成证书 第一步是生成一个自签名证书。这可以通过JDK自带的`keytool`工具完成。 **命令行操作:** ```...

    【基础篇】第02篇:PHP代码审计笔记--跨站脚本漏洞1

    本文主要围绕PHP代码审计中如何防止XSS漏洞展开,介绍了几种常见的防护策略。 首先,XSS攻击的原理是攻击者通过注入带有恶意脚本的参数,使这些脚本在受害者浏览器中执行。例如,通过`&lt;script&gt;alert(/xss/)...

    前端知识Cookie, Session,Token和JWT的发展及区别(一) 上章:主要介绍一下背景和Cookie

    - `httpOnly`:防止JavaScript访问Cookie,增加安全性。 2.4 Cookie的认证流程 通常,登录成功后,服务端会将一个包含用户信息的Cookie发送给浏览器,浏览器在后续的请求中自动带上该Cookie,服务端根据Cookie识别...

    跨站脚本攻击(XSS)presentation所有材料

    5. 防御策略:提供预防XSS攻击的方法,如输入验证、输出编码、使用HTTPOnly Cookie和Content Security Policy等。 录像部分可能包含: 1. 实战演示:展示一个真实的XSS攻击过程,帮助观众理解攻击者如何操作。 2. ...

    百度内部通用XSS攻击解决方案探讨培训ppt

    本资源为百度内部通用XSS攻击解决方案探讨培训ppt,主要介绍了百度内部通用XSS攻击解决方案的探讨培训内容。下面是从该资源中提取的知识点: 1. 问题现状:XSS攻击的数量足够多,新型攻击手法普及,移动/云/前项...

    XSS漏洞挖掘与安全防护.pdf

    XSS(Cross Site Scripting,跨站脚本攻击)是一种常见...在本议题中,XSS漏洞的深入浅出介绍将围绕形成机制、攻击手段和防御策略等方面展开,强调开发过程中如何避免和减少XSS漏洞的风险,保障Web应用的安全稳定运行。

    如何在SpringBoot中使用Cookies程序员节日快乐甜点送上.pdf

    本文详细介绍了如何在Spring Boot中实现这一功能,同时也提醒开发者关于安全性的注意事项。 首先,我们来看如何**读取HTTP Cookie**。Spring框架提供了`@CookieValue`注解,它可以直接应用于控制器方法的参数中,...

    网络攻防-XSS跨站脚本攻击详解及其防范

    首先介绍了XSS的概念及原理,包括恶意脚本是如何利用网页漏洞在用户浏览器中运行的。接着解释了三种主要的XSS攻击形式——反射型XSS、存储型XSS和DOM-based XSS的特征及攻击流程。此外,文中还列举了因XSS导致的各种...

    web安全性测试 共8讲

    本讲详细阐述了反射型、存储型和DOM型XSS的差异,提供了防御XSS的有效措施,如输入验证、HTTPOnly Cookie和Content Security Policy。 第五讲:SQL注入 SQL注入是通过在SQL查询中插入恶意代码,从而获取数据库中的...

Global site tag (gtag.js) - Google Analytics