Когда необходимо защищать формы с помощью токена (CSRF-атаки)? - PullRequest
4 голосов
/ 25 мая 2011

Насколько я понимаю, веб-разработчик должен создать токен и поместить его в скрытое поле формы для предотвращения CSRF-атак.Кроме того, он должен сохранить тот же токен в сеансе, а затем, когда форма отправлена, - проверить, чтобы токены были равны.

Я пришел к вопросу ... Нужно ли использовать этот метод для всех форм?Я имею в виду, представьте форму, которая создана для входа.Я не вижу никакого вреда для сайта и / или пользователя, если нет защиты CSRF, потому что у пользователя нет привилегий (как если бы он вошел в систему).То же самое касается регистрации ... Я прав?

PS Если я ошибаюсь, пожалуйста, объясните мне концепцию.

Ответы [ 2 ]

6 голосов
/ 25 мая 2011

Опасность, которую CSRF пытается предотвратить, заключается в том, что у вас возникает следующая ситуация:

  1. Пользователь выполнил вход или что-то еще и имеет определенный уровень полномочий
  2. злоумышленник использует эти полномочия без разрешения пользователя

Иногда это происходит из-за того, что пользователь обманным путем заставляет сделать запрос HTTP, не зная его, например, в атрибуте источника изображения.

Вы хотите защитить те формы, которые требуют этих полномочий.

В связи с безумным, не имеющим шансов, что это на самом деле не имеет смысла, Крис Шифлетт написал замечательную статью о CSRF Вы, наверное, уже прочитали: /)

5 голосов
/ 25 мая 2011

Вообще говоря, вы хотите защитить свою форму в любое время, когда ее отправка приведет к изменению содержимого / состояния; будь то добавление, удаление, редактирование или совместное использование с внешним источником («поделиться на xyz!»).

Примером форм, которые вам не нужно защищать, является окно поиска, поскольку оно не приводит к изменению содержимого.

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

А если вы действительно не уверены, просто добавьте токен, ничего не стоит быть в безопасности.

...