Подтвердить что ты не робот

Когда использование AntiForgeryToken не требуется/не требуется?

UPD: Тот же вопрос, заданный security.stackexchange.com, и ответ, который я получил, отличается. Пожалуйста, следуйте за ним, чтобы получить правильный ответ!

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

Поскольку я начал переходить на MVC 3, я ввел AntiForgeryToken в несколько форм, которые изменяют защищенные данные и т.д.

Некоторые другие формы, такие как login/registration, теперь также используют AntiForgeryToken, но я в первую очередь сомневаюсь в их потребностях по нескольким причинам...

  • Форма входа в систему требует, чтобы плакат узнал правильные учетные данные. На самом деле я не могу придумать, как пригодится атака csrf. Особенно, если я проверяю, что запрос поступает с одного и того же хоста (проверка заголовка Referrer)
  • Маркер AntiForgeryToken генерирует разные значения каждый раз, когда страница загружается. Если у меня есть две вкладки, открытые с помощью страницы входа, а затем попытайтесь опубликовать их, первая будет успешно загружена. Второе не будет выполнено с помощью AntiForgeryTokenException (сначала загрузите обе страницы, а затем попытайтесь опубликовать их). С более безопасными страницами - это, очевидно, необходимое зло, со страницами входа - кажется излишним, и просто спрашивает о проблемах: S

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

4b9b3361

Ответ 1

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

  • Злоумышленник устанавливает HTML-форму на своем сайте, которая напоминает ваш сайт. Эта форма также может содержать скрытые поля.
  • Он обманывает одного из ваших пользователей сайта, чтобы посетить его злонамеренный URL-адрес.
  • Пользователь думает, что он на вашем сайте, заполняет форму и отправляет ее на ваш сайт.
  • Если пользователь уже прошел аутентификацию на вашем сайте, представление формы преуспевает, и ничего не подозревающий пользователь удалил свою учетную запись (или что бы вы ни могли себе представить).

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

Примечание: проверка заголовка Referer для определения того, что запрос пришел с вашего сайта, не является безопасным. Любой может подделать запрос и обмануть этот заголовок.