При сохранении >100 списков/строк "Ошибка Доступ запрещен: Возможна CSRF-атака"

Где возникла проблема: При редактировании/сохранении списков более 100 строк, например товаров. Или обмен с 1с(новый модуль), при импорте большого количества характеристик. При ручном утверждении импорта.

Суть проблемы: Переходим в Товары -> Товары -> показать 250 строк -> Выбрать все -> Редактировать выбранные-> Категории -> Перебрасывает на главную страницу админки с сообщением “Ошибка Доступ запрещен: Возможна CSRF-атака”

Как воспроизвести проблему: CS-Cart 4.14.3.SP1 и ниже, чистая установка. HestiaCP, PHP 72,74, NGINX, Debian 9-11. В логах сервера ошибок нету.

Чтобы подтвердить и решить проблему, нам сначала нужно повторить её на своём магазине или демо (без любых сторонних модулей и тем). Если это не получится, мы попросим вас обратиться в Help Desk для дальнейшего изучения.

1 лайк

Благодарю за ответ.

Но, во-первых хотелось бы использовать менее опасный способ :sunglasses:.
А во-вторых это не есть решение проблемы. И жить на костылях не привык.
И, в-третьих csrf-токен используется при обращении к ресурсам, пита сохранения отправляемых данных пользователем.

Ошибка
*2405 FastCGI sent in stderr: “PHP message: PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0” while reading response header from upstream, client: 188.42.1.0, server: test.ru, request: “POST /admin.php HTTP/2.0”, upstream: “fastcgi://unix:/run/php/php7.4-fpm-test.ru.sock:”, host: “test.ru”, referrer: “https://test.ru/admin.php?dispatch=sync_data.update&sync_provider_id=commerceml&selected_section=catalog

Решение
php.ini
; max_input_vars = 1000
сделать
max_input_vars = 3000

Решение верное. Мы обычно советуем установить значение 10000 для max_input_vars

Сама проблема возникает если сервер обрезает часть запроса и в вырезанной части оказывается токен.

Отключать твик в config.local.php неправильно, т.к. это не решит проблему, а только уберет ошибку. Сервер будет все так же обрезать часть запроса, а вы не будете понимать почему что-то не работает.

1 лайк