2010-04-17 8 views
8

Ich habe eine Rails-App, die seit einiger Zeit läuft, und ich plane, sie in naher Zukunft zu öffnen. Ich frage mich, wie gefährlich es ist, den Sitzungsschlüsselspeicher in der Quellcodeverwaltung geheim zu halten, während die App live ist.Ist es beim Open-Sourcing einer Live-Rails-App gefährlich, den Sitzungsschlüssel in der Quellcodeverwaltung geheim zu halten?

Wenn es gefährlich ist, wie gehen die Leute normalerweise mit diesem Problem um? Ich nehme an, dass es am einfachsten ist, die Zeichenfolge in eine Textdatei zu verschieben, die vom SCM ignoriert wird, und sie später einzulesen.

Nur für Klarheit, ich rede darüber:

# 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)' 
} 

Und während wir auf dem Thema sind, dann ist es etwas anderes in einer Standard-Rails-Anwendung, die beim Öffnen geschützt werden sollte ein Live-App Sourcing ?

+0

"Gibt es noch etwas in einer Standard-Rails-App, das beim Öffnen einer Live-App geschützt werden sollte?" 1 up für das – tybro0103

Antwort

2

Drehen Sie die Frage um. Würden Sie einen geheimen Schlüssel aus dem gerade heruntergeladenen Projekt eines anderen Benutzers wiederverwenden? Probaby nicht, und andere intelligente Benutzer Ihres Codes werden auch nicht. Böswillige Benutzer haben dann einen Schlüssel, der als Angriff auf Ihrer Hauptseite verwendet werden kann, sowie gegen Benutzer, die faul sind, den Schlüssel nicht zu ändern.

Andere Konfigurationsdateien, die Sie haben könnten, die nicht geteilt werden sollten, schließen database.yml, s3.yml, amazon_s3.yml, etc. ein. Wenn Sie es nicht an einen Fremden mailen, behalten Sie es nicht in Ihrem scm wenn Sie entfesseln Ihren Code für die Welt.

1

Ich würde dies in eine Konfigurationsdatei legen. Wahrscheinlich werden Sie trotzdem einige Konfigurationseinstellungen benötigen. Warum sollten Sie das nicht tun und einen Kommentar hinzufügen, der geändert werden sollte, wenn der Benutzer die Software installiert?

+0

Ja, ich habe die Implementierung bereits aus Dinge wie API-Schlüssel verwenden, aber danke. Ich war nur neugierig, wie gefährlich es war, diesen Session-Schlüssel da draußen zu haben, da ich gesehen habe, dass andere Projekte ihn in ihren öffentlichen Repositories haben. –

Verwandte Themen