2010-04-21 17 views
16

W Ruby on Rails, jak ustawić ustawienie httpOnly pliku cookie sesji na wartość false?Jak ustawić ustawienie HttpOnly pliku cookie sesji na wartość false?

+0

PSA: ** nie rób tego w produkcji **. Flaga 'httponly' służy do zapewnienia bezpieczeństwa. Może to brzmieć "nie https", ale w rzeczywistości oznacza "niedostępny dla JavaScript". 'httponly' jest zgodny z flagą' secure', co oznacza "tylko połączenia przez https". Zobacz https://www.owasp.org/index.php/HttpOnly –

Odpowiedz

7

Wymyśliłem to. W /config/environment.rb obejmują ten kod:

config.action_controller.session = { :httponly => false }

+0

Dla jakiej wersji szyn to było? Próbuję w szynach 3 i otrzymuję następujący błąd: niezdefiniowana metoda 'session = 'dla ActionController :: Base: Class –

+0

@Peter Została napisana przed RoR 3 dla wersji 2.3. To nie zostało przetestowane z 3. – kingjeffrey

+0

Zrobiłem obejście, tutaj: http://stackoverflow.com/questions/8351871/session-cookie-httponly-false-rails-3-1/8371839#8371839 –

6

ten sposób zrobiłem go Rails 3:

Testapp::Application.config.session_store :cookie_store, key: '_testapp_session', :domain => :all, :httponly => false 
7

w Rails 4, trzeba edytować config/initializers/session_store.rb

Rails.application.config.session_store :cookie_store, 
    key: '_my_app_session', httponly: false 
+4

Edytuj to, do czego ? – CoderDave

+3

Rozsądne pytanie, CodeDave. Przekazujesz klucz ': httponly' z wartością' false'. (Podobnie jak w przypadku innych odpowiedzi - po prostu zmieniło się położenie kodu do edycji z 'environment.rb' na inicjator) – troelskn

0

Rails domyślnie jest ustawione na true. Nie polecam go zmienić, ponieważ będzie to zestaw, który ciasteczka accessable na zmianę z JS jak: document.cookie

w szynach 3+ można zmienić konfigurację cookies z config/initializers/session_store.rb:

# Be sure to restart your server when you modify this file. 
Rails.application.config.session_store :cookie_store, key: "_my_application_session", httponly: false 
Powiązane problemy