2010-04-17 6 views
8

Mam aplikację Rails, która działa od jakiegoś czasu i planuję otworzyć ją w najbliższej przyszłości. Zastanawiam się, jak niebezpieczne jest pozostawienie tajnego klucza sesji sesji w kontroli kodu źródłowego, gdy aplikacja działa.Czy po otwarciu źródła aplikacji Rails na żywo, pozostawienie tajnego klucza sesji w kontroli źródła jest niebezpieczne?

Jeśli to niebezpieczne, jak zwykle ludzie radzą sobie z tym problemem? Domyślam się, że najłatwiej jest po prostu przenieść ciąg do pliku tekstowego, który jest ignorowany przez SCM, i przeczytać go później.

Tak dla jasności, ja mówię o tym:

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

A skoro jesteśmy przy tym temacie, jest jeszcze coś w domyślnej aplikacji Rails, które powinny być chronione, gdy otwarte pozyskiwania aplikację na żywo ?

+0

"czy w domyślnej aplikacji Railsowej jest coś jeszcze, co powinno być chronione, gdy otwarte jest pozyskiwanie aplikacji na żywo?" 1 do tego – tybro0103

Odpowiedz

2

Odwróć pytanie. Czy używałbyś tajnego klucza z cudzego projektu, który właśnie pobrałeś? Probaby nie, a inni inteligentni użytkownicy twojego kodu też tego nie zrobią. Szkodliwi użytkownicy otrzymają wtedy klucz do użycia jako atak w głównej witrynie, a także na wszystkich użytkowników, którzy są wystarczająco leniwi, aby nie zmienić klucza.

Inne pliki konfiguracyjne, które mogą nie być udostępniane, to database.yml, s3.yml, amazon_s3.yml, itp. Jeśli nie wyślesz go do nieznajomego, nie przechowuj go w swoim scmie, gdy uwolnisz swój kod na świat.

1

Wstawiłbym to do pliku konfiguracyjnego. Prawdopodobnie będziesz potrzebował pewnych ustawień konfiguracyjnych, więc dlaczego nie umieścisz go tam i nie dodasz komentarza, który powinien zostać zmodyfikowany, gdy użytkownik zainstaluje oprogramowanie.

+0

Tak, mam już implementację z wykorzystaniem takich kluczy, jak API, ale dziękuję. Byłem po prostu ciekawy, jak niebezpieczny jest ten klucz sesji, ponieważ widziałem, że inne projekty mają go w swoich publicznych repozytoriach. –

Powiązane problemy