no he sido capaz de encontrar una guía fácil para asegurar una aplicación Ruby on Rails contra un Firesheep.¿Cómo asegurar una aplicación de Rails contra Firesheep?
En caso de que no saben, Firesheep tomas cookies de sesión si su aplicación no obliga a SSL y establece el indicador de seguro en la cookie. Tuve que buscar un poco para encontrar estas dos cosas, así que pensé en publicar lo que encontré aquí y ver si me faltaba algo más.
Paso 1 Fuerza SSL
Hay dos maneras de hacer esto que he encontrado. Uno está usando el complemento ssl_requirement, pero esto es un problema porque tiene que especificar específicamente ssl_required :action1, :action2
en cada controlador.
La forma preferible parece ser mediante el uso de estante Middleware, a través de este mensaje: Force SSL using ssl_requirement in Rails 2 app. Funciona de maravilla.
Paso 2 hacer galletas asegurar
Por esta Seguí these directions, que le diga que poner lo siguiente en su config/environment/production.rb
archivo: Esto fue
config.action_controller.session = {
:key => 'name_of_session_goes_here',
:secret => 'you need to fill in a fairly long secret here and obviously do not copy paste this one',
:expire_after => 14 * 24 * 3600, #I keep folks logged in for two weeks
:secure => true #The session will now not be sent or received on HTTP requests.
}
todos bastante recta hacia adelante en mis rieles 2.x aplicación. ¿Yo me perdí algo? ¿Es diferente para Rails 3?
Gracias por la respuesta. Me estoy desplegando en Heroku para que el middleware parezca el mejor lugar para forzar SSL. –
Tenga en cuenta que la opción para hacer que la cookie sea inaccesible para JavaScript es ': httponly' en vez de': http_only'. Este último fue desaprobado en Rails 2.3 (o anterior) y eliminado en Rails 3. Creo que estos cambios son para alinear Rails con Rack. –
Buena respuesta, pero el uso de HTTP en pruebas y HTTPSs en producción hace que sea fácil pasar por alto problemas de contenido mixto y otros errores sutiles. –