UPD: Тот же вопрос, заданный security.stackexchange.com, и ответ, который я получил, отличается. Пожалуйста, следуйте за ним, чтобы получить правильный ответ!
Я запускаю довольно большой сайт с тысячами посещений каждый день и довольно большую пользовательскую базу.
Поскольку я начал переходить на MVC 3, я ввел AntiForgeryToken в несколько форм, которые изменяют защищенные данные и т.д.
Некоторые другие формы, такие как login/registration, теперь также используют AntiForgeryToken, но я в первую очередь сомневаюсь в их потребностях по нескольким причинам...
- Форма входа в систему требует, чтобы плакат узнал правильные учетные данные. На самом деле я не могу придумать, как пригодится атака csrf. Особенно, если я проверяю, что запрос поступает с одного и того же хоста (проверка заголовка Referrer)
- Маркер AntiForgeryToken генерирует разные значения каждый раз, когда страница загружается. Если у меня есть две вкладки, открытые с помощью страницы входа, а затем попытайтесь опубликовать их, первая будет успешно загружена. Второе не будет выполнено с помощью AntiForgeryTokenException (сначала загрузите обе страницы, а затем попытайтесь опубликовать их). С более безопасными страницами - это, очевидно, необходимое зло, со страницами входа - кажется излишним, и просто спрашивает о проблемах: S
Возможно, есть и другие причины, по которым использовать или не использовать токен в своих формах. Правильно ли я полагаю, что использование токена в каждой почтовой форме является плохим/чрезмерным, и если да, то какие формы будут полезны от него, и какие из них определенно НЕ выиграют?