Come faccio a impostare il flag HttpOnly su un cookie in Ruby on Rails
-
09-06-2019 - |
Domanda
La pagina Proteggere I Cookie:HttpOnly spiega perché fare HttpOnly cookie è una buona idea.
Come faccio a impostare questa proprietà in Ruby on Rails?
Soluzione
Impostare il 'http_only' opzione di hash utilizzato per impostare un cookie
ad es.
cookies["user_name"] = { :value => "david", :httponly => true }
o, in Rails 2:
ad es.
cookies["user_name"] = { :value => "david", :http_only => true }
Altri suggerimenti
Re Laurie risposta:
Si noti che l'opzione è stata rinominata da :http_only
per :httponly
(senza underscore) a un certo punto.
In actionpack 3.0.0, che è, Ruby on Rails 3, tutti i riferimenti a :http_only
se ne sono andati.
Che mi ha buttato per un po'.
Basta impostare :http_only al vero, come descritto nel changelog.
Se hai un file chiamato config/session_store.rb tra cui questa linea (Rails 3+), quindi è automaticamente impostato già.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"
Anche guide consente di configurare le seguenti chiavi:
:scadenza - Il momento in cui il cookie scade, come un Tempo oggetto.
:sicuro - Se questo cookie viene trasmesso solo ai server HTTPS.Il valore predefinito è false.
Ho scritto anche una patch che è incluso in Rails 2.2, che di default è il CookieStore sessione http_only.
Purtroppo i cookie di sessione sono ancora per impostazione predefinita normali cookie.