Оправдано ли иногда отключение защиты CSRF? - PullRequest
6 голосов
/ 08 апреля 2011

В частности, я имею в виду формы входа в систему:

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

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

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

Я пропускаю некоторые соображения безопасности в этом сценарии?

Ответы [ 2 ]

2 голосов
/ 09 апреля 2011

Удивительный вопрос!Это заставило меня почесать голову на некоторое время.

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

1 голос
/ 02 октября 2011

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

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

...