Иногда ли отключается защита CSRF?

Я думаю о формах входа в частности:

По своей природе входные формы блокируют действие на произвольном вводе - без действительного имени пользователя и пароля вы просто получаете отскок. Есть ли причина, по которой им даже требуется добавление authenticity_token или аналогичной защиты подделки запроса на межсайтовый сайт?

Мне любопытно, являются ли регистрационные формы одним примером, где CSRF может вообще быть нежелательным:

Для анонимного клиента должно быть разрешено, чтобы первая точка контакта с сайтом соответствовала допустимым учетным данным пользователя POST. CSRF предотвращает это прямое взаимодействие, сначала требуя, чтобы клиент выполнял GET для создания анонимного cookie сеанса, который используется в качестве основы для их authenticity_token. Затем токен должен быть отправлен обратно с учетными данными входа. Дополнительный шаг вперед кажется бессмысленным, когда фактическая цель здесь заключается в аутентификации пользователя, который приходит без сеанса и пытается предоставить свои учетные данные.

Не хватает ли какого-либо соображения безопасности в этом сценарии?

6
08 апр. '11 в 13:42
источник поделиться
2 ответов

Без защиты XSRF злоумышленник может зарегистрировать пользователя во вредоносной учетной записи, которую они могут использовать для отслеживания своей активности. Это обсуждается в Надежная защита для кросс-сайта подделка запросов.

Я не понимаю, почему клиент должен иметь учетные данные для входа POST в качестве первой точки контакта. Для веб-интерфейса в большинстве практических случаев клиент должен получить страницу входа в систему, чтобы получить форму.

1
02 окт. '11 в 3:28
источник

Удивительный вопрос! Мне пришлось немного почесывать голову.

Как насчет сценария, когда злоумышленник уже приобрел пароль жертвы другими способами, но не имеет доступа к самому сайту? Он обманывает свою жертву на www.evil.com и имеет это на начальной странице:

<image src="http://portal.internal/login.php?user=root&password=hunter2"/>

Это убеждает браузер-жертву аутентифицировать жертву на сайте. Затем, на другой странице www.evil.com, есть еще один тег изображения:

<image src="http://portal.internal/deleteEverything.php/>

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

2
09 апр. '11 в 6:29
источник

Посмотрите другие вопросы по меткам или Задайте вопрос