Como faço para definir o sinalizador HttpOnly em um cookie em Ruby on Rails

StackOverflow https://stackoverflow.com/questions/72242

  •  09-06-2019
  •  | 
  •  

Pergunta

A página Protegendo seus cookies:Somente http explica por que criar cookies HttpOnly é uma boa ideia.

Como defino essa propriedade em Ruby on Rails?

Foi útil?

Solução

Defina a opção 'http_only' no hash usado para definir um cookie

por exemplo.

cookies["user_name"] = { :value => "david", :httponly => true }

ou, em Rails 2:

por exemplo.

cookies["user_name"] = { :value => "david", :http_only => true }

Outras dicas

Resposta de Re Laurie:

Observe que a opção foi renomeada de :http_only para :httponly (sem sublinhado) em algum momento.

No actionpack 3.0.0, ou seja, Ruby on Rails 3, todas as referências a :http_only se foram.

Isso me confundiu por um tempo.

Basta definir :http_only como true conforme descrito no registro de alterações.

Se você tiver um arquivo chamado config/session_store.rb incluindo esta linha (Rails 3+), então ele já está configurado automaticamente.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"

Além disso, o Rails permite que você defina as seguintes chaves:

:expira - A hora em que esse cookie expira, como um objeto Time.

:seguro - Se este cookie é transmitido apenas para servidores HTTPS.O padrão é falso.

Eu também escrevi um patch que está incluído no Rails 2.2, cujo padrão é http_only para a sessão CookieStore.

Infelizmente, os cookies de sessão ainda são cookies regulares por padrão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top