Мне нужно хранить небольшой фрагмент данных (менее 10 символов) в cookie в Rails, и мне нужно, чтобы он был безопасным.Я не хочу, чтобы кто-либо мог прочитать эту часть данных или внедрить свою собственную часть данных (поскольку это открыло бы приложение для многих видов атак).Я думаю, что шифрование содержимого файла cookie - это путь (я должен также подписать его?).Каков наилучший способ сделать это?
Сейчас я делаю это, что выглядит безопасным, но многие вещи выглядели безопасными для людей, которые знали о безопасности гораздо больше меня, а потом было обнаружено, что это не так.Это действительно безопасно.
Я сохраняю секрет следующим образом:
encryptor = ActiveSupport::MessageEncryptor.new(Example::Application.config.secret_token)
cookies[:secret] = {
:value => encryptor.encrypt(secret),
:domain => "example.com",
:secure => !(Rails.env.test? || Rails.env.development?)
}
и затем читаю это так:
encryptor = ActiveSupport::MessageEncryptor.new(Example::Application.config.secret_token)
secret = encryptor.decrypt(cookies[:secret])
Этобезопасности?Есть ли лучшие способы сделать это?
Обновление : я знаю о сеансе Rails и о том, насколько он безопасен, подписывая cookie-файл и, при необходимости, сохраняя содержимое серверной части сеанса иЯ использую сессию для чего она нужна.Но мой вопрос здесь касается хранения cookie-файла, части информации, которую я не хочу видеть в сеансе, но мне все еще нужно, чтобы она была безопасной.