2010-07-06 3 views
0

Без куки-файлов включено сообщение о форме будет вызывать ActionController::InvalidAuthenticityToken. По большей части, я просто обрабатываю исключение с сообщением о том, что файлы cookie должны войти в мое приложение.Обработка защиты CSRF, когда файлы cookie отключены.

Тем не менее, одно из моих пользователей, которые могут выполнять мои приложения, - это создать контент для совместного использования с другими людьми, которые могут или не могут быть зарегистрированы (это не обязательно). Кроме того, этот контент может быть защищен паролем, если создатель решит это сделать. Здесь я столкнулся с проблемами. Если это имеет значение, я использую active_record_store как мой session_store, а также набор config.action_controller.session.

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

Если я правильно понимаю, что если я отключу защиту от этого действия, я буду подвергать открытию защищенного контента уязвимости CSRF, но если cookie-файлы не будут включены, это будет иметь значение? Есть ли способ защитить при обращении с недостатком файлов cookie?

ответ

1

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

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