Ответ 1
Это тонкий, но ответ в документации вы предоставили. Подписанные файлы cookie защищают только от несанкционированного доступа, в то время как зашифрованные файлы cookie защищают от чтения и несанкционированного доступа.
Более конкретно, подписанные файлы cookie вызывают ActiveSupport::MessageVerifier
, чтобы добавить в файл cookie дайджест (сгенерированный с помощью secret_key_base
). Если значение cookie будет изменено, дайджест больше не будет соответствовать, и, не зная значения secret_key_base
, cookie не может быть подписан. Однако значение cookie кодируется только base64 и может быть прочитано кем угодно.
Зашифрованные файлы cookie, называемые ActiveSupport::MessageEncryptor
, чтобы фактически шифровать значение cookie перед созданием дайджеста. Подобно подписанным файлам cookie, если значение cookie изменено, дайджест больше не будет соответствовать, но дополнительно значение cookie не может быть расшифровано без secret_key_base
.
Что касается использования зашифрованных и подписанных файлов cookie, это сводится к чувствительности информации, которую вы храните в cookie. Если все, что вы хотите защитить, - это кто-то, модифицирующий cookie, а затем подпишите его, но если вам также нужно хранить данные в секрете, зашифруйте его.