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

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

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

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

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

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

+6
источник поделиться
2 ответа

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

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

+1
источник

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

Как насчет сценария, когда злоумышленник уже приобрел пароль жертвы другими способами, но не имеет доступа к самому сайту? Он обманывает свою жертву на 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
источник

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