2015-09-22 4 views
-1

Давайте сказать, что я что-то вроде этого в моем приложении:Как зашифровать куки сессии в рельсах 4

session[user_id] = 1 

Согласно видео, которое я смотрел (ссылка ниже): В рельсам 4:

  • cookie сеанса по умолчанию закодирован, но не зашифрован. Значение: cookie сеанса не может быть изменен из-за значения дайджеста. Если опытный пользователь каким-то образом изменяет полезную нагрузку, это сделает cookie сеанса бесполезным.

  • Что касается того, что cookie сеанса закодирован, но не зашифрован. Несмотря на то, что опытный пользователь не может успешно изменить сеанс cookie, опытный пользователь может все еще читать содержание.

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

Кроме того: Как я могу поменять поведение cookie сеанса по умолчанию на то, что оно по умолчанию просто зашифровано?

Справочная информация: Я проработал курс Lynda.com «Ruby on Rails 4 Essential Training». Я попал в видео «Cookies and Sessions».

Также: relevant rails documentation.

ответ

-2

После рассмотрения relevant Rails Documentation, Эта область дает ответ:

Если у вас есть только secret_token набора, ваши куки будут подписаны, но не зашифрованы. Это означает, что пользователь не может изменить свой user_id, не зная секретный ключ вашего приложения, но может легко прочитать свой user_id. Это было по умолчанию для приложений Rails 3.

Если у вас есть secret_key_base, ваши файлы cookie будут зашифрованы. Это идет дальше, чем подписанные файлы cookie, поскольку зашифрованные файлы cookie не могут быть изменены или прочитаны пользователями. Это Отправное по умолчанию в Rails 4.

secret_key_base расположен в рельсах 4 по умолчанию в: config/secrets.yml. Так что на самом деле: в rails 4 по умолчанию на самом деле нужно зашифровывать куки-файлы сеансов.

+0

Что случилось с моим ответом ??? – Neil

+1

Ваш оригинальный ответ был «Найден ответ, будет обновляться вместе с ним» - это привлекает downvotes. Избегайте отправки ответа, пока вы не написали сам ответ. Вы всегда можете оставить комментарий к своему вопросу, пока вы пишете ответ. – sjagr

+0

@sjagr ok.Я просто сделал это, чтобы спасти людей от написания ответа, потому что я понял ответ на свой вопрос и сам собирался опубликовать ответ. – Neil

4

Согласно тому, что я прочитал here:

Если вы secret_key_base набор, ваши куки будут зашифрованы. Это идет дальше, чем подписанные файлы cookie, поскольку зашифрованные файлы cookie не могут быть изменены или прочитаны пользователями. Это запуск по умолчанию в Rails 4.

Смежные вопросы