2012-04-11 8 views
6

Mam app Sinatra, który używa omniauth który constantantly dostaje ten błądSinatra app używając omniauth dostaje Rack :: :: Session Hijacking Protection w IE9

attack prevented by Rack::Protection::SessionHijacking 

gdy próbuję i zalogować się (przy użyciu konta Google) .

Działa dobrze w innych wersjach IE oraz na chrome/firefox/safari.

Moja konfiguracja jest

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) 

Ktoś wie dlaczego tak się dzieje?

+2

Może to być związane z https://github.com/rkh/rack-protection/issues/11 - jeśli masz czas, możesz dołączyć do tej dyskusji? Niestety nie mogę odtworzyć tego problemu. –

+0

Dobry pomysł - https://github.com/rkh/rack-protection/issues/11#issuecomment-5066417 – zlog

Odpowiedz

8

Moduł ten śledzi właściwości takie jak USER_AGENT i podobne (można je sprawdzić tutaj: https://github.com/rkh/rack-protection/blob/master/lib/rack/protection/session_hijacking.rb). Ten błąd, który otrzymujesz, prawdopodobnie wynika z tego, że jedna z tych właściwości została zmieniona podczas sesji. Spróbuj sprawdzić, czy wszystko działa tylko z tego modułu niepełnosprawnych:

set :protection, except: :session_hijacking 
+1

Ah, wyłączenie session_hijacking zapobiega wystąpieniu błędu. Nie jestem pewien, czy powinienem go wyłączyć w produkcji. Czy wiesz, dlaczego występuje tylko w IE9? – zlog

+0

To jest dobre pytanie. Może w IE9 jeden z tych nagłówków jest w jakiś sposób zmieniany, ale to wymagałoby pewnych badań. A co do tego modułu, jego ochrona nie jest tak silna (wszystkie te nagłówki mogą być ** łatwo ** podrobione), a * może * być problematyczne. Są inne środki ostrożności, które możesz podjąć, zaszyfrowanie klucza sesji za pomocą protokołu SSL w szczególności, a inne, zobacz http://pl.wikipedia.org/wiki/Session_hijacking – Ernest

+0

Świetnie, dzięki! Wyłączanie funkcji session_hijacking będzie działać na razie. Wysłałem zrzuty serwerów na http://gist.github.com/2358527, jeśli ktoś jest ciekawy jak zmienia się środowisko sesji. Przejdę przez nie, jeśli będę miał szansę. – zlog

0

można spróbować, aby uaktualnić swój gem rack-ochronny do v1.5.2 lub 1.5.3 (najnowsza).

Usunięto śledzenie HTTP_ACCEPT_ENCODING z biblioteki session_hijacking.

Powiązane problemy