Yii2 - как отключить CSRF валидацию токена

  • Последнее обновление: 3 Апреля 2024 г.
  • Просмотры: 41
  • Автор: Админ
Yii2 - как отключить CSRF валидацию токена

Коллеги всем привет.

В сегодняшней статье мы поговорим о том как можно отключить проверку токена CSRF в Yii2. CSRF означает меж сайтовая подделка запроса когда от вашего имени отправляется запрос на сайт, пользователем которого вы являетесь. Как раз от таких атаки одним из вариантов защиты от подделки запроса может быть специальный токен, который генерируется в строку и отправляется вместе с запросом. После отправки запроса на ваш сервер этот токен проверяется на корректность. 

Проверка CSRF токена по умолчанию включена.

Если вы отправите на сервер обычную HTML форму или обычный AJAX запрос, то вы получите ошибку - Bad Request (#400): Unable to verify your data submission. Эта ошибка будет появляться всегда когда при отправке данных на сервер не будет указано значение CSRF токена.

 

Вот так будет выглядеть ваш токен на сайте.

yii2_disable_csrf_token

И при каждой перезагрузки страницы этот токен будет меняться.


 

Первый вариант отключить проверку CSRF токена в Yii2 можно на уровне какого-нибудь действия. Для этого воспользуйтесь кодом ниже:

public function beforeAction($action)
{
    if (in_array($action->id, ['login'])) {
        $this->enableCsrfValidation = false;
    }
    return parent::beforeAction($action);
}

yii2_disable_csrf_token

В этом варианте метод beforeAction будет всегда вызываться перед всеми действиями в данном контроллеру, и если какое-нибудь из действий совпадет с именем login то для того действия проверка CSRF токена будет отключена.


 

Есть еще один вариант который подходит для тех людей которые не переживают за безопасность своего приложения. Проверку CSRF токена можно отключить сразу для всего сайта, для этого вам нужно в конфигурационном файле web.php добавить параметр enableCsrfValidation со значением false.

'request' => [
    'enableCsrfValidation' => false,
],

yii2_disable_csrf_token


 

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

 

ПОХОЖИЕ СТАТЬИ

Как получить расширение файла - PHP
Как сгенерировать случайное и уникальное число в PHP
Как узнать длину строки в PHP - strlen, mb_strlen
Yii2 как убрать web из адреса URL