我发现了一个与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标头。我不明白这怎么会是一个安全漏洞(因为它是一个无效页面,而且是一个错误响应)?如何将其用于点击劫持?为什么设置此标头对错误响应也很重要?
您可以将以下行添加到.htaccess
Header always unset X-Frame-Options