Опасно ли оставлять секретный ключ сеанса в управлении исходными кодами при открытом приложении живого Rails-приложения? - PullRequest
8 голосов
/ 18 апреля 2010

У меня есть приложение Rails, которое уже некоторое время работает вживую, и я планирую открыть его в ближайшем будущем. Мне интересно, насколько опасно оставлять секрет хранилища ключей сеанса в управлении исходным кодом, пока приложение работает.

Если это опасно, как люди обычно решают эту проблему? Я предполагаю, что проще всего переместить строку в текстовый файл, который игнорируется SCM, и прочитать его позже.

Просто для ясности, я говорю об этом:

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

И пока мы обсуждаем эту тему, есть ли что-нибудь еще в приложении Rails по умолчанию, которое должно быть защищено при открытом приложении из живого приложения?

Ответы [ 3 ]

2 голосов
/ 18 апреля 2010

Переверните вопрос. Вы бы повторно использовали секретный ключ от чужого проекта, который вы только что загрузили? Вероятно, нет, и другие умные пользователи вашего кода тоже не будут. После этого злонамеренные пользователи получат ключ для использования в качестве атаки на вашем основном сайте, а также против любых пользователей, достаточно ленивых, чтобы не менять ключ.

Другие файлы конфигурации, которые у вас могут быть, которые не должны предоставляться для совместного использования, включают database.yml, s3.yml, amazon_s3.yml и т. Д. Если вы не хотите отправлять его незнакомому человеку, не храните его в своей scm, раскрыть свой код миру.

1 голос
/ 21 апреля 2010

Я бы положил это в файл конфигурации. В любом случае, возможно, вам понадобятся некоторые настройки конфигурации, так почему бы вам не добавить их туда и не добавить комментарий, который следует изменить, когда пользователь устанавливает программное обеспечение.

0 голосов
/ 20 апреля 2011

Пример кода и некоторый опыт работы с существующими сеансами при обновлении уже существующего приложения можно найти в блоге Майкла Хартла Проблема безопасности с секретными ключами сеансов Rails .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...