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

Codeigniter CSRF - как это работает

Недавно я узнал о атаках CSRF и был рад узнать, что защита CSRF была добавлена ​​в Codeigniter v 2.0.0.

Я включил эту функцию и увидел, что в формах добавлен скрытый ввод с токеном, и я предполагаю, что он хранит токен в сеансе. В запросах POST CI автоматически сравнивает токены или мне приходится вручную это делать?

4b9b3361

Ответ 1

Тонер CSRF добавляется в форму как скрытый ввод только тогда, когда используется функция form_open().

Файл cookie с значением токена CSRF создается классом безопасности и при необходимости восстанавливается для каждого запроса.

Если существуют данные $_POST, cookie автоматически проверяется классом Input. Если опубликованный токен не соответствует значению cookie, CI покажет ошибку и не сможет обработать данные $_POST.

В принципе, все автоматическое - все, что вам нужно сделать, это включить его в $config['csrf_protection'] и использовать функцию form_open() для вашей формы.

Хорошая статья, которую я нашел, объясняет это очень хорошо: https://beheist.com/blog/csrf-protection-in-codeigniter-2-0-a-closer-look.html

Ответ 2

При включенной защите безопасности csrf класс безопасности автоматически проверяет этот токен (он сравнивает токен POST с токеном COOKIE)

Ответ 3

Ссылка на эту ссылку - Используемые токены CSRF с помощью хелпера формы или вручную

В статье объясняется, как работать с токенами CSRF в

  • открыть форму с помощью формы helper form_open() function
  • в формах ajax
  • Форматы сериализации ajax/jquery

В этой статье также объясняется, как " отключить CSRF для URL-адреса cetain (которые используются как URL-адреса веб-службы)"