2010-04-17 4 views
8

Tengo una aplicación Rails que se ha estado ejecutando en vivo por un tiempo, y estoy planeando abrirla en un futuro cercano. Me pregunto qué tan peligroso es dejar el secreto de la tienda clave de la sesión en control de fuente mientras la aplicación está activa.Al abrir una aplicación de Rails en vivo, ¿es peligroso dejar la clave de la sesión en secreto en el control de la fuente?

Si es peligroso, ¿cómo la gente por lo general manejan este problema? Supongo que es más fácil simplemente mover la cadena a un archivo de texto que SCM ignora, y leerlo más tarde.

Sólo para mayor claridad, estoy hablando de esto:

# Your secret key for verifying cookie session data integrity. 
# If you change this key, all old sessions will become invalid! 
# Make sure the secret is at least 30 characters and all random, 
# no regular words or you'll be exposed to dictionary attacks. 
ActionController::Base.session = { 
    :key   => '_application_session', 
    :secret  => '(long, unique string)' 
} 

Y ya que estamos en el tema, ¿hay algo más de una aplicación por defecto rieles que debe ser protegido cuando se abre una aplicación de compra de componentes en directo ?

+0

"¿hay algo más en una aplicación de Rails predeterminada que debería protegerse cuando se abre una aplicación en vivo?" 1 para eso – tybro0103

Respuesta

2

Dale la vuelta a la pregunta. ¿Reutilizaría una clave secreta del proyecto de otra persona que acaba de descargar? Probablemente no, y otros usuarios inteligentes de tu código tampoco lo harán. Los usuarios malintencionados tendrán una clave para usar como ataque en su sitio principal, así como también contra cualquier usuario que tenga la pereza suficiente para no cambiar la clave.

Otros archivos de configuración que puede tener y que no deberían compartirse incluyen database.yml, s3.yml, amazon_s3.yml, etc. Si no se lo envía a un extraño, no lo guarde en su scm cuando liberas tu código al mundo

1

Lo pondría en un archivo de configuración. Probablemente necesites algunos ajustes de configuración, así que ¿por qué no lo pones ahí y agregas un comentario que debe modificarse cuando el usuario instala el software?

+0

Sí, ya tengo la implementación de usar cosas como las teclas API, pero gracias. Solo tenía curiosidad por lo peligroso que era tener esa clave de sesión, ya que he visto otros proyectos tenerla en sus repositorios públicos. –

0

Algunos ejemplos de código y algunas experiencias sobre cómo trabajar con sesiones existentes si está actualizando una aplicación ya existente se pueden encontrar en la publicación de Michael Hartl en el blog Security issue with Rails secret session keys.

Cuestiones relacionadas