S
S
Sergey Beloventsev2016-07-23 14:34:58
Yii
Sergey Beloventsev, 2016-07-23 14:34:58

Why is there an incomprehensible csrf validation error?

when sending forms to the backend, a Bad Request error occurs (# 400) Failed to check the transmitted data, different csrf tokens are generated, so such a token is generated in the form
anRRVnhKa2o9RmkGGwUTBUdMGBFOIB06Dz0rFE0ILgAvARUPH34JIw==
this one comes in
cookies VTZHWlFDLVkWByoRZRZ0aBcOcSI/c0YtRgYFTMQp
= And how to test where the error occurs.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
Андрей, 2016-07-23
@mhthnz

В файле yii\web\Request в функции generateCsrfToken поставьте
Потом в дебаггере увидите сколько раз вызывается генерация токена, по идее она должна вызываться 1 раз и потом браться из переменной. У вас скорее всего несколько раз генерирует. Затем вызовите исключение, чтобы проследить откуда происходит вызов перегенерации.
Если нужно отловить 2 и более вызов, то добавьте в класс переменную, напр: $iterator, и при каждом вызове генерации итерируйте ее и потом все это дело оборачиваете в условие:

if ($this->iterator == 2) {
    throw new \Exception('1');
}

Наверное как то так и я бы сделал.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question