Rails修复可能存在的HTTP Response Splitting攻击隐患

Rails新版本改进了redirect_to函数以防止响应拆分和头部注入攻击,此类攻击可使恶意用户通过输入篡改HTTP响应头部。开发者仍需确保用户输入的数据经过适当过滤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文址址:http://weblog.rubyonrails.com/2008/10/19/response-splitting-risk

 

  由于Rails中所用到的Ruby HTTP 函数库并没有对HTTP Headers的值进行任何的过滤,因此在某些情况下,当用户输入的值写到HTTP响头部时,攻击者就有机会构造出Response Splitting (响应拆分)和Header Injection (头部注射)等攻击。如果一些Rails程序依懒于用户所输入的数据构造HTTP响应头部,并且没有对用户输入的数据进行过滤的话的话,那么攻击者可以通过输入非法数据来设置cookies值、伪造服务端响应。

 

  对于这个隐患最常见的利用之一就是,某些程序通过客户端的请求取得一个URL地址,完成一些动作后将浏览器重定向到这个URL(比如说登陆完成后回到以前的页面)。而Rails的新版本则通过过滤redirect_to的值,以帮助开发者减少受到这类攻击的可能性。但是作为开发者,如果要将用户输入的值写到HTTP响应头部的话,仍虽要自行过滤。

 

  以下的新版本将对redirect_to进行改进:

  • 2.0.5
  • 2.1.2
  • 2.2.0

由于这些版本目前尚未发布,所以对于急需改进redirect_to函数的开发者,可以使用以下补丁

对于使用Edge Rails ba80ff74a962 之前版本的开发者,请升级到最新版本,或者使用这个补丁

 

感谢ACROS Security的Luka Treiber和Mitja Kolsek向我们提出这个问题以及Ruby Security团队给我们的建议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值