【问题标题】:X-Frame-Options header on error response错误响应上的 X-Frame-Options 标头
【发布时间】:2015-04-15 10:49:22
【问题描述】:

我发现了一个有趣的bug report 与 X-Frame-Options 标头相关。但我不明白这怎么可能是安全问题。

以下代码作为漏洞证明:

require 'net/http'  
require 'uri'  
uri = URI.parse("https://play.google.com/#{"a" * 10000}")  
@r = Net::HTTP.get_response uri  
ret = @r.each_header {|x| puts x}  
if ret["x-frame-options"]  
  puts ret["x-frame-options"]  
else  
  puts "Missing x-frame-options!"  
end 

但它试图访问一个无效的 URL (https://play.google.com/aaaaaaaaa...) 并返回一个错误页面。在响应中,缺少 x-frame-options 标头。我不明白这怎么可能是一个安全漏洞(因为它是一个无效页面并且它是一个错误响应)?这如何用于点击劫持?为什么错误响应也应该设置此标头很重要?

【问题讨论】:

  • 最好在security.stackexchange.com上询问。
  • 错误页面与其他页面一样只是一个 HTML 页面。在 Google Play 的案例中,他们的系统没有将 X-Frame-Options 标头放入 HTTP 响应中以生成错误页面。这意味着该页面可能容易受到点击劫持,如果攻击者可以通过诱骗用户点击那里获得任何内容。从链接中不清楚此页面上显示的内容 - 如果您可以显示应用程序的安装按钮,那么您可以让用户安装您的恶意应用程序。

标签: javascript security http owasp clickjacking


【解决方案1】:

您可以在 .htaccess 中添加以下行

Header always unset X-Frame-Options

【讨论】:

    猜你喜欢
    • 2019-10-19
    • 2016-01-13
    • 1970-01-01
    • 2013-11-16
    • 2013-02-20
    • 2014-05-10
    • 2015-04-23
    • 1970-01-01
    • 2017-03-09
    相关资源
    最近更新 更多