Если куки не включены, сообщение формы будет выдавать ActionController::InvalidAuthenticityToken
. По большей части я просто обработал исключение с сообщением о том, что файлы cookie необходимы для входа в мое приложение.
Однако пользователи моего приложения могут создавать контент, которым могут делиться другие люди, которые могут входить или не входить в систему (это не обязательно). Кроме того, этот контент может быть защищен паролем, если создатель решит это сделать. Здесь я сталкиваюсь с проблемами. Если это имеет значение, я использую active_record_store
в качестве session_store
, а также установил config.action_controller.session
.
Если посетитель пытается разблокировать содержимое, защищенное паролем, без использования файлов cookie, приложение сгенерирует исключение, и, с точки зрения посетителя, произойдет сбой. Я хотел бы иметь возможность справиться с этой ситуацией, но я не уверен, как это сделать. Я мог бы обработать исключение и позволить разблокировать контент без проверки файла cookie, но если я это сделаю, я бы тоже не стал защищать действие от CSRF, потому что я все равно открыл бы уязвимость, правильно? С другой стороны, я мог бы потребовать, чтобы куки были включены, чтобы форма могла быть аутентифицирована, но в действительности нет никаких причин требовать куки в такой ситуации.
Если я правильно понимаю, если я отключу защиту для этого действия, я буду только подвергать разблокированный защищенный контент уязвимости CSRF, но если куки в любом случае не включены, будет ли это иметь значение? Есть ли способ защитить себя от нехватки куки?