Codeigniter CSRF - как это работает - PullRequest
19 голосов
/ 05 июня 2011

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

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

Ответы [ 3 ]

36 голосов
/ 05 июня 2011

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

Файл cookie со значением токена 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

3 голосов
/ 26 августа 2015

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

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

  • форма открыта с помощником формы form_open() функция
  • в формах ajax
  • формы сериализации ajax / jquery

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

2 голосов
/ 05 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...