Я только что переключился с Rails 3.2 на Rails 4. Я стараюсь, чтобы как можно быстрее реагировать на проблемы безопасности, и сейчас я беспокоюсь о сессиях. Похоже, что Rails 4 отказался от поддержки действительно чего-то, кроме EXCEPT-сессий на основе файлов cookie, но похоже, что невозможно предотвратить ведение сессий на основе файлов cookie. Я читал несколько статей, но это один из самых официальных: http://guides.rubyonrails.org/security.html#session-expiry. Обратите внимание, как они указывают, что это проблема для сеансов на основе файлов cookie, затем они дают исправление для сеансов на базе базы данных (которые, по-видимому, теперь устарели).
Я действительно смущен. Я хочу, чтобы предотвратить, чтобы злоумышленник получал cookie, который дает ему постоянный доступ к моему сайту, защищенному сайтом. Очевидно, я могу установить: expire_after в initializers/session_store.rb, но если я ошибаюсь, это просто задает истечение срока действия cookie, который является клиентской стороной и легко изменен злоумышленником, поэтому сеанс может жить вечно. Конечно, я могу улучшить ситуацию, заставив SSL, используя безопасные куки файлы и форсируя только HTTP, но это никогда не будет полной защитой, пока я не смогу обеспечить соблюдение срока действия сеанса.
Как я могу решить эту проблему, когда Rails осуждает единственные способы иметь сеансы на стороне сервера?
Я знаю, что активные сеансы записи были перенесены в драгоценный камень и по-прежнему доступны, но факт остается фактом, что он устарел. Решение должно быть возможным без введения дополнительных зависимостей или, по крайней мере, без использования устаревших функций.