Ruby on Rails 3.2.13 - Brakeman - Секрет сессии не должен быть включен в контроль версий

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

У меня есть несколько приложений Rails, которые у меня есть на двух серверах, одно для разработки, а другое для производства. Когда я запускал отчеты о тормозах своих приложений, большинство из них помечали config/initializers/secret_token.rb со следующей уязвимостью с высокой степенью безопасности.

Session secret should not be included in version control near line 7

Это первый раз, когда я вижу эту ошибку, так как я запускал более старую версию Brakeman несколько месяцев назад.

Из того, что я исследовал до сих пор, Rails автоматически генерирует секретный токен, когда rails выполняет новое имя приложения. Я не знал об этом до сих пор. Очевидно, Rails не защищает этот файл, и если я решу переместить любое из моих приложений на Github, эта информация будет доступна любому пользователю Github, имеющему доступ к приложению. В настоящее время я не загружаю файлы на GitHub, но мне нужна информация о том, как переместить secure_token из config/initializers/secret_token.rb, чтобы закрыть дыру в безопасности моих приложений.

В одном сообщении в блоге, которое я прочитал, предлагалось ввести секретный токен в переменную ENV. Решит ли проблему перемещение оператора из config/initializers/secret_token.rb в config/environment.rb? Если это так, я добавлю эту задачу в свой список задач в разработке Rails.

Любая помощь будет оценена.

2 ответа

Решение

Это конкретное сообщение в "Бормман" было для меня замолчать, когда я поместил секретную информацию в ENV переменные, как вы упомянули. Лично я люблю использовать драгоценный камень Figaro для этого, но я думаю, что dotenv также популярен.

Вот некоторые другие ресурсы, которые могут вас заинтересовать:

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

В этом сообщении от Phusion рассматриваются несколько различных вариантов предоставления ключа сеанса во время развертывания.

Другие вопросы по тегам