2013-07-22 8 views
2

Хорошая практика - сохранить токен csrf в файле cookie или лучше использовать скрытое поле в форме? Также хорошо ли регенерировать токен csrf для каждого пользовательского запроса, как то, что делают captchas?Защита маркера CSRF с использованием файла cookie

Thanks

+0

Я не эксперт во всех тонкостях, но для меня было бы контрпродуктивно сохранить его в файле cookie. Если пользователь недавно был на сайте, у него есть правильный файл cookie, чтобы обойти проверку. Если вы поместите его в форму, вы знаете, что эта самая форма и ничего больше не генерирует cookie. –

+0

Как насчет добавления токена csrf в строке запроса вместо скрытого файла, вы думаете, что лучше использовать cookie? благодаря – ginad

ответ

0

Лучше всего включить его в форму. Идея маркера CSRF заключается в том, что он не передается пассивно (например, если злоумышленник может обмануть браузер в доступе к некоторому URL-адресу, который делает что-то неприятное). Печенье передается пассивно.

0

Лучшее объяснение этому вопросу можно найти на веб-сайте OWASP по адресу OWASP CSRF Prevention Cheat Sheet.

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

Во-вторых, приложение может включать в себя скрытый входной параметр в форме с общим названием, таким как «CSRFToken». Значение этого токена должно генерироваться случайным образом, чтобы злоумышленник не мог его догадаться.

Кроме того, Challenge-Response - еще один вариант защиты для CSRF. Он может быть реализован в следующих способов:

  1. CAPTCHA на
  2. Re-аутентификации (пароль)
  3. Одноразовый Токен
0

Куки CSRF, безусловно, открыт для атаки, но реализация в безопасности, как значение сеанса всегда будет проверяться на поданное значение токена, которое хранится в теле или заголовке запроса, поэтому я не вижу причины. Двойная подача (http only cookie vs post data) или токен-синхронизатор (сеанс против сообщений) шаблоны, изложенные на веб-сайте OWASP, являются хорошими оценками и оба используют файлы cookie.

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

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