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

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

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

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

Куки-файл с значением токена CSRF создается классом Security и при необходимости восстанавливается для каждого запроса.

Если существуют данные $ _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

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

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

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

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

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