Как предотвратить атаку воспроизведения сеанса с помощью Rails и Devise?
Я работаю над приложением Rails, которое недавно прошло аудит безопасности, и одна из проблем, с которыми они столкнулись, заключается в том, что если пользователь получает "session_id" из файла cookie другого пользователя, он может войти в систему как этот пользователь. Можно ли это предотвратить? Как бы я сделал это с моей текущей настройкой?
Rails 3.2.12
разработка (2.1.2)
мой config/initializers/session_store.rb
является
MyApp::Application.config.tap do |config|
config.session_store :active_record_store, config.session_options
end
Принудительный SSL включен на производстве
config.force_ssl = true
Я посмотрел на Rails 4 Encrypted Cookie Replay Attack, но так как мой использует активную запись для сессий, не уверен, что смогу сделать то же самое.
Я пытался добавить :session_limitable
от расширения безопасности Devise, но, похоже, он делает что-то совсем другое.
Процитировать результат теста безопасности
Смягчите воспроизведение сеанса, убедившись, что одновременно активен только один вход. - возможность войти в систему как другой пользователь, просто изменив cookie "_session_id"