2011-08-10 18 views
7

Estoy creando un sistema de autenticación para mi proyecto. ¿Cuál es el método recomendado para la información de sesión tienda (sólo estoy almacenando Identificación nada del usuario otra cosa):Rieles - Cookies o Tienda de registros activos para sesiones

  • Cookies tienda
  • activa Record Store

Además, ¿cuáles son las preocupaciones de seguridad para utilizando formularios anidados y accept_nested_attributes_for.

Por favor, asesorar.

Gracias mucho por adelantado.

Respuesta

4

Los raíles están predeterminados para el almacenamiento de cookies, por lo que probablemente sea el camino a seguir. En general, la tienda de cookies es ideal especialmente para sitios con mucho tráfico. No deberías almacenar ningún elemento crítico para la misión en la sesión (dices que solo estás almacenando identificadores de usuario, lo cual es genial).

En cuanto a las preocupaciones de seguridad por usar esas ... ¿No creo que sean demasiadas? Consulte railscasts para obtener un excelente tutorial sobre cómo usarlos. Lo único que viene a la mente es posiblemente usar attr_accessible para limitar las cosas a las que se puede asignar en masa. También CanCan es una gran joya para la autorización si la necesita.

+0

Para cualquier persona que busque esto, independientemente del almacén de sesión que use, hay una cookie involucrada. La diferencia es solo una de si la cookie contiene la sesión en sí o si contiene solo un identificador opaco que la correlaciona con una sesión almacenada en la base de datos. En cualquier caso, si la seguridad es una preocupación, cualquiera de estos tipos de cookies debe marcarse como "seguro" para evitar la posibilidad de transmisión a través de conexiones no seguras, lo que lo haría vulnerable a la posibilidad de secuestro de sesión. –

+0

Si las cookies se utilizan de forma predeterminada, no significa que sean seguras. Son más rápidos, no contaminan el DB, pero no son seguros. – sekrett

0

Si solo está almacenando una única identificación, definitivamente vaya con las cookies. La sesión AR aún requerirá una identificación de algún tipo en una cookie para asociar solicitudes con la sesión.

6

Definitivamente hay preocupaciones de seguridad al usar CookieStore. El principal problema es que una sesión de CookieStore no se puede matar en el lado del servidor. Si alguien obtiene acceso a sus cookies, puede iniciar sesión fácilmente como usted. Incluso si cierra sesión y comienza una nueva sesión con una nueva cookie.

ActiveRecordStore al menos le da la capacidad de invalidar una sesión eliminándola de la base de datos.

Esta es una buena publicación en el blog al respecto. http://www.bryanrite.com/ruby-on-rails-cookiestore-security-concerns-lifetime-pass/

+0

Excelente punto. –

Cuestiones relacionadas