`
desert3
  • 浏览: 2159086 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

HttpOnly介绍以及防止XSS攻击时的作用(转)

阅读更多
介绍HttpOnly、讨论HttpOnly、以及HttpOnly与各语言的集成(Java,.Net,PHP)

转自:利用HTTP-only Cookie缓解XSS之痛
在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和其他技术组合使用。如果单独使用的话,它无法全面抵御跨站点脚本攻击。
  • 大小: 14.2 KB
分享到:
评论
1 楼 kakarottoz 2015-09-03  
学习了

相关推荐

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

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

    XSS防攻击实现

    防止XSS攻击是保障Web应用安全的重要环节。本文将深入探讨XSS攻击的原理,以及如何通过Java Spring框架中的InitBinder和自定义StringEscapeEditor类来实现有效的防御措施。 XSS攻击主要分为三种类型:反射型、存储...

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

    需要注意的是,HttpOnly虽然可以有效防止XSS攻击窃取Cookie,但它并不能解决所有XSS攻击的问题。例如,反射型XSS和DOM型XSS攻击往往不依赖于Cookie,因此除了使用HttpOnly之外,还需要通过其他安全措施来全面防御XSS...

    XSS漏洞攻击与防护源代码

    为了防止XSS攻击,开发者需要采取一系列的防御措施: 1. 输入验证:对用户提交的所有数据进行严格的检查和清理,确保只接受预期的数据格式。 2. 输出编码:在将用户数据插入HTML、CSS或JavaScript之前,应使用适当...

    解决XSS跨站脚本攻击

    4. Content Security Policy (CSP):设置CSP策略可以限制页面可以加载的资源类型和来源,有效防止XSS攻击。 5. 使用HTTPOnly Cookie:将重要的cookie标记为HTTPOnly,防止JavaScript访问,降低cookie被窃取的风险。 ...

    处理XSS攻击的调研和落地方案

    2. **Content Security Policy (CSP)**:设置CSP策略可以限制浏览器只执行来自特定源的脚本,有效防止XSS攻击。在SpringBoot中,可以使用`HttpHeaders`类添加CSP头。 3. **使用HTTPOnly Cookie**:设置HTTPOnly标志...

    防止xss网络攻击.zip

    为了防止XSS攻击,Web开发者需要采取以下措施: 1. 输入验证:对用户提交的所有数据进行严格的验证和过滤,避免恶意代码进入数据库或被直接显示在页面上。 2. 输出编码:在向网页输出用户数据时,应使用适当的编码...

    8、XSS 攻击的防御pdf资料

    - 使用最新的安全框架和库,这些工具通常包含了防止XSS攻击的最佳实践。 总之,XSS攻击是一种严重的威胁,需要开发者在设计和开发阶段就充分考虑安全性,通过合理的输入验证、数据转义和使用安全策略来降低攻击风险...

    XSS跨站脚本攻击在Java开发中防范的方法

    #### XSS攻击原理与分类 XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的安全威胁,它利用Web应用程序的安全漏洞,将恶意脚本注入到合法的网页中,进而攻击最终用户。XSS攻击主要分为以下两种类型: 1. **...

    XSS跨站脚本攻击剖析与防御

    - "1.5.2 利用字符编码.pdf"和"7.10 字符编码隐患.pdf"可能探讨了字符编码在XSS攻击中的作用,如Unicode、ASCII等编码方式如何被利用绕过过滤机制。 6. **协议安全**: - "7.7.2 来自pdf的xss.pdf"可能讲述了PDF...

    PHP如何防止XSS攻击与XSS攻击原理的讲解

    为有效防止XSS攻击,PHP开发者可以采取以下几种措施: 1. 输入过滤:在用户输入数据时,要对其进行验证和清理。可以使用PHP内置函数strip_tags()去除HTML标签,htmlspecialchars()函数将特殊字符转换为HTML实体,...

    AntiXss攻击防止的C#代码文件

    总之,防止XSS攻击需要开发者从多个角度进行考虑,结合输入验证、输出编码、使用安全的库以及良好的编程习惯,构建一个安全的Web应用环境。这个名为"AntiXss"的C#代码文件应该包含了实现这些策略的具体示例和函数,...

    java防止xss注入

    4. **OWASP Java Encoder**:提供安全的字符串编码功能,防止XSS攻击。 5. **Spring Security**:提供XSS防护过滤器,可配置在应用的安全链路中。 四、最佳实践 1. **最小权限原则**:只允许应用程序需要的最少...

    XSS跨站脚本攻击漏洞修复方法

    存储型XSS攻击是恶意脚本被永久地存储在目标服务器上,当其他用户访问该页面时,脚本会在他们的浏览器中执行。 3. **DOM型XSS(DOM-based XSS)**: 这种类型的XSS不依赖服务器响应,而是利用了网页的DOM...

    xss跨站脚本攻击与预防

    综上所述,了解XSS攻击的原理、危害以及防御措施对于构建安全的Web应用至关重要。通过阅读《XSS跨站脚本攻击剖析与防御(完整版).pdf》,我们可以深入学习这方面的知识,并结合实际项目中的`xss-html-filter`工具来...

    XSS攻击进阶篇.zip

    在XSS攻击的原理中,攻击者通常会在网页的输入字段中插入恶意代码,当受害者访问该页面时,浏览器会错误地执行这些脚本,而非像预期那样只显示静态内容。这种攻击分为三种类型:反射型XSS、存储型XSS和DOM型XSS。 1...

    XSS跨域攻击讲义

    - **HTTPOnly Cookies**:设置Cookies属性为HTTPOnly,防止脚本读取Cookies。 #### 六、总结 XSS攻击作为一种常见的Web安全威胁,其危害不容小觑。通过深入理解XSS的工作原理、分类及具体实施方法,我们可以更好地...

    XSS 跨站脚本攻击及防范

    理解XSS攻击的本质和风险,以及如何有效防御,对于保护Web应用程序和用户数据的安全至关重要。开发人员应遵循安全编码最佳实践,同时,用户也需要提高安全意识,警惕可疑链接和附件,以降低遭受XSS攻击的风险。

    反射型xss攻击代码.rar

    6. **使用参数化查询/预编译语句**:在数据库操作中使用参数化查询,可以防止SQL注入,同时也能防止某些XSS攻击。 7. **教育用户**:提高用户的网络安全意识,提醒他们不要随意点击未知链接,特别是来自陌生来源的...

    java防止xss注入.rar 附案例及jar包

    使用这些资源,开发者可以学习如何在实际项目中有效防止XSS攻击,提升应用程序的安全性。在分析和研究这些案例时,应重点关注代码中的输入验证、数据编码以及可能使用的安全库。同时,了解和实践案例中涉及的技术,...

Global site tag (gtag.js) - Google Analytics