Каковы возможные причины исключения CGI :: Session :: CookieStore :: TamperedWithCookie в рельсах - PullRequest
3 голосов
/ 22 сентября 2008

Я получаю исключение CGI::Session::CookieStore::TamperedWithCookie после изменения параметра config.action_controller.session.secret в приложении (как часть подготовки к полному развертыванию.

Прав ли я, если предположить, что причиной этого является изменение секретности, когда тестеры установили файлы cookie, и какая еще может быть причина (как из-за серьезных атак, так и из-за проблем с кодированием)

Ответы [ 3 ]

3 голосов
/ 22 сентября 2008

Причиной вашего исключения является, безусловно, изменение секрета, пока тестеры установили файлы cookie. Cookie-файл криптографически подписан с использованием секрета для защиты пользователей от вмешательства в их cookie-файлы. Например, они могут попытаться изменить свой сохраненный идентификатор пользователя, чтобы повысить свои привилегии.

Вы можете попросить тестеров очистить их куки. Или вы можете перехватить исключение и удалить куки для вашего приложения. Некоторые сайты предпочитают использовать ActiveRecordSession хранилище для большего контроля над своими сеансами, поэтому они отбрасывают все сеансы, когда это необходимо, но за счет производительности.

1 голос
/ 22 сентября 2008

Да, тестеры должны очистить свои куки. Каждый раз, когда cookie не может быть расшифрован с указанным секретом, вы получите эту ошибку.

0 голосов
/ 06 октября 2010

Я нашел плагин на Github , который будет перехватывать ошибку и записывать ее в журнал, не сообщая об ошибке пользователю. Я страдала от этой проблемы на экземпляре Rails 2.1, и она сделала свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...