使用omniauth的Sinatra应用程序在ie9中获取Rack :: Protection :: SessionHijacking

zlo*_*log 6 internet-explorer rack sinatra omniauth

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

attack prevented by Rack::Protection::SessionHijacking
Run Code Online (Sandbox Code Playgroud)

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

它在其他版本的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)
Run Code Online (Sandbox Code Playgroud)

谁知道为什么会这样?

Ern*_*est 8

此模块跟踪USER_AGENT等类似属性(您可以在此处查看:https://github.com/rkh/rack-protection/blob/master/lib/rack/protection/session_hijacking.rb).您得到的此错误可能是由于其中一个属性在会话期间发生了更改.尝试测试一切是否只在禁用此模块时有效:

set :protection, except: :session_hijacking
Run Code Online (Sandbox Code Playgroud)