在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的一个报头的示例:
- Set-Cookie: USER=123; expires=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属性对大小写不敏感):
- Set-Cookie: =[; =]
- [; expires=][; domain=]
- [; path=][; secure][; HttpOnly]
即使应答头中含有HttpOnly属性,当用户浏览有效域中的站点时,这个cookie仍会被自动发送。但是,却不能够在Internet Explorer 6 SP1中使用脚本来访问该cookie,即使起初建立该cookie的那个Web 站点也不例外。这意味着,即使存在跨站点脚本攻击缺陷,并且用户被骗点击了利用该漏洞的链接,Internet Explorer也不会将该cookie发送给任何第三方。这样的话,就保证了信息的安全。
注意,为了降低跨站点脚本攻击带来的损害,通常需要将HTTP-only Cookie和其他技术组合使用。如果单独使用的话,它无法全面抵御跨站点脚本攻击。
相关推荐
#### 二、属性介绍 ##### 1. `secure`属性 - **定义**: 当Cookie设置为`secure`时,意味着这个Cookie只会在HTTPS连接中被浏览器传递给服务器。如果当前连接是HTTP而非HTTPS,则浏览器不会发送该Cookie。 - **作用**:...
本文将详细介绍HttpOnly属性的作用,以及Java和PHP后台如何设置HttpOnly属性到浏览器的Cookie。 **HttpOnly属性详解** HttpOnly属性是Cookie的一个扩展,其主要目的是增强对XSS攻击的防护。当一个Cookie被设置为...
本文将详细介绍如何在C#中使用`HttpWebRequest`读取`HttpOnly`的Cookie。 首先,`HttpWebRequest`对象本身并不能直接读取响应头中的`Set-Cookie`字段,尤其是`HttpOnly`标记的Cookie。这是因为`HttpOnly` Cookie...
下面,我们将详细介绍如何使用 .net 获取浏览器 Cookie,包括 HttpOnly 类型的 Cookie。 一、接口文件 在获取浏览器 Cookie 之前,我们需要定义一些枚举类型和 DLL 导入函数。这些枚举类型和 DLL 导入函数将帮助...
总结来说,文章通过介绍具体的API调用和代码实现,展示了在.NET环境下获取HttpOnly Cookie的可行方法。了解和使用这些技术能够帮助开发者在特定情况下更好地管理Cookie,但同时也提醒了开发者在使用这些技术时需要...
Cookie 的介绍 Cookie 是一种客户端存储机制,由 Web 服务器保存在用户浏览器(客户端)上的小文本文件。它可以包含有关用户的信息,如用户名、密码等。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息...
本文将介绍如何解决 Cookie 路径属性暴露问题。 Cookie 路径属性的危险 在服务器中的项目中,如果 Cookie 中的路径属性没有被正确设置,可能会泄露项目路径,导致外部攻击。例如,在某些 Web 应用程序中,如果 ...
### Extjs 中关于 Cookie 的操作 #### 一、引言 在 Web 开发中,Cookie 是一种常用的数据...通过以上介绍,开发者应该能够熟练掌握在 Extjs 中如何利用 Cookie 进行数据的存储与读取,从而提高应用程序的用户体验。
### Cookie介绍及应用 #### 一、Cookie的基本概念与作用 **Cookie** 是一种轻量级的数据存储技术,主要用于在用户的计算机上存储少量信息。它由服务器生成,并发送到用户的浏览器,然后浏览器会将该信息存储在本地...
总结,本文详细介绍了在Spring Boot中如何操作Cookies,包括读取、设置、删除以及设置过期时间和安全性和HttpOnly属性。通过这些技巧,你可以更好地管理Web应用中的用户会话和数据交互。希望这个甜点般的教程对你...
本文将详细介绍如何在SpringSecurity框架下实现CSRF跨站攻击防御。 什么是CSRF? CSRF是一种网络攻击方式,也可以说是一种安全漏洞,这种安全漏洞在web开发中广泛存在。CSRF攻击方式通常是攻击者向用户发送留言或...
本文将详细介绍如何在Jetty中配置HTTPS,并生成受信的网站证书。 #### 二、Jetty HTTPS配置步骤 ##### 1. 生成证书 第一步是生成一个自签名证书。这可以通过JDK自带的`keytool`工具完成。 **命令行操作:** ```...
本文主要围绕PHP代码审计中如何防止XSS漏洞展开,介绍了几种常见的防护策略。 首先,XSS攻击的原理是攻击者通过注入带有恶意脚本的参数,使这些脚本在受害者浏览器中执行。例如,通过`<script>alert(/xss/)...
- `httpOnly`:防止JavaScript访问Cookie,增加安全性。 2.4 Cookie的认证流程 通常,登录成功后,服务端会将一个包含用户信息的Cookie发送给浏览器,浏览器在后续的请求中自动带上该Cookie,服务端根据Cookie识别...
5. 防御策略:提供预防XSS攻击的方法,如输入验证、输出编码、使用HTTPOnly Cookie和Content Security Policy等。 录像部分可能包含: 1. 实战演示:展示一个真实的XSS攻击过程,帮助观众理解攻击者如何操作。 2. ...
本资源为百度内部通用XSS攻击解决方案探讨培训ppt,主要介绍了百度内部通用XSS攻击解决方案的探讨培训内容。下面是从该资源中提取的知识点: 1. 问题现状:XSS攻击的数量足够多,新型攻击手法普及,移动/云/前项...
XSS(Cross Site Scripting,跨站脚本攻击)是一种常见...在本议题中,XSS漏洞的深入浅出介绍将围绕形成机制、攻击手段和防御策略等方面展开,强调开发过程中如何避免和减少XSS漏洞的风险,保障Web应用的安全稳定运行。
本文详细介绍了如何在Spring Boot中实现这一功能,同时也提醒开发者关于安全性的注意事项。 首先,我们来看如何**读取HTTP Cookie**。Spring框架提供了`@CookieValue`注解,它可以直接应用于控制器方法的参数中,...
首先介绍了XSS的概念及原理,包括恶意脚本是如何利用网页漏洞在用户浏览器中运行的。接着解释了三种主要的XSS攻击形式——反射型XSS、存储型XSS和DOM-based XSS的特征及攻击流程。此外,文中还列举了因XSS导致的各种...
本讲详细阐述了反射型、存储型和DOM型XSS的差异,提供了防御XSS的有效措施,如输入验证、HTTPOnly Cookie和Content Security Policy。 第五讲:SQL注入 SQL注入是通过在SQL查询中插入恶意代码,从而获取数据库中的...