6

我有一个 Sinatra 应用程序,它使用了omniauth,它不断地得到这个错误

attack prevented by Rack::Protection::SessionHijacking

当我尝试登录(使用谷歌帐户)时。

它在其他版本的 IE 和 chrome/firefox/safari 上运行良好。

我的设置是

rack (1.4.1)
rack-force_domain (0.2.0)
rack-protection (1.2.0)

sinatra (1.3.2)
  rack (~> 1.3, >= 1.3.6)
  rack-protection (~> 1.2)
  tilt (~> 1.3, >= 1.3.3)
omniauth (1.0.3)
  hashie (~> 1.2)
  rack

omniauth-google-oauth2 (0.1.9)
  omniauth (~> 1.0)
  omniauth-oauth2
omniauth-oauth2 (1.0.0)
  oauth2 (~> 0.5.0)
  omniauth (~> 1.0)

有谁知道为什么会这样?

4

2 回答 2

8

这个模块跟踪像 USER_AGENT 和类似的属性(你可以在这里查看它们:https ://github.com/rkh/rack-protection/blob/master/lib/rack/protection/session_hijacking.rb )。您收到的此错误可能是由于在会话期间更改了这些属性之一。尝试测试在禁用此模块的情况下是否一切正常:

set :protection, except: :session_hijacking
于 2012-04-11T09:12:40.040 回答
0

您可以尝试将您的机架保护 gem 升级到 v1.5.2 或 1.5.3(最新)。

他们从 session_hijacking 库中删除了对 HTTP_ACCEPT_ENCODING 的跟踪。

于 2014-09-18T06:56:10.337 回答