Программа: Mailwizz
Действие: импорт списков / загрузка файлов / сохранение в базу данных
Ошибка: Ошибка 400!
Невозможно определить CSRF.
Причина и решение: Ошибка происходит, когда вы загружаете файл большего размера, чем разрешено лимитом PHP, и для передачи токена CSRF нет места.
Решение состоит в том, чтобы увеличить лимит загрузки из вашего файла настроек PHP (php.ini).
Примечание:
Ошибка «Не удалось проверить токен CSRF» обычно появляется, когда вы отправляете форму, содержащую поле для загрузки файла, и выбираете файл, размер которого превышает разрешенный размер файла для загрузки на ваш сервер.
MailWizz не контролирует это поведение, размер загружаемого файла определяется вашим веб-сервером и вашими настройками PHP.
Для веб-сервера nginx прочтите эту статью .
Информацию о веб-сервере Apache с PHP см. В этой статье .
О самом PHP см. В этой статье .
Поскольку это изменение на стороне сервера, вам может потребоваться связаться с вашим хостингом, чтобы помочь вам, или нанять системного администратора, который внесет изменения за вас.
В vesta Cp обратите внимание на значение этой директивы post_max_size / upload_max_filesize и если он маленький — увеличьте его.
Обратите внимание что маленькие лимиты других директив, таких как к примеру memory_limit — так же будут влиять на работу Вашего MailWizz
Перейти к содержимому
Такая ошибка обычно говорит, что проблема с токеном CSRF. Токена нет или токен не тот. Этот токен нужно передавать как в POST так и в AJAX запросах.
На английском эта ошибка звучит так:
Bad Request (#400): Unable to verify your data submission
Проблему можно решить тремя способами:
Два неправильных способа — отключить проверку для всего приложения в конфиге или отключить в конкретном месте. Смотрите код ниже:
//В файле конфигурации отключаем для всего приложения ‘components’ => [ ‘request’ => [ ... ‘enableCsrfValidation’=>false, ... ], ... ], // Отключаем в конкретном месте $this—>enableCsrfValidation = false; |
А теперь правильный способ.
Всегда передавать валидный CSRF токен! В Yii2 для этого есть все инструменты.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//В мета тэгах вашего шаблона echo Html::csrfMetaTags(); //это добавит строки содержащие имя параметра и сам токен <meta name=«csrf-param» content=«_csrf»> <meta name=«csrf-token» content=«OTDOwBtYk-tsjYLIgTAXrqhKwU-WgneMk_TpFcbE6DwPCIu3XRPJhj202Jn0Z3TP4Ry3ecevOcC-x4ZQkKu8dg==»> //В формах <input type=«hidden» name=«_csrf» value=«OTDOwBtYk-tsjYLIgTAXrqhKwU-WgneMk_TpFcbE6DwPCIu3XRPJhj202Jn0Z3TP4Ry3ecevOcC-x4ZQkKu8dg==»> //Если форму создавать методами ActiveForm::begin() и Html:beginForm(), то input будет подставляться автоматически //Если же вы сами создаёте форму, то пишите так <input type=«hidden» name=«<?=Yii::$app—>request—>csrfParam; ?>« value=«<?=Yii::$app—>request—>getCsrfToken(); ?>« /> //Если отправляете ajax запрос, то в javascript можно получить csrf токен из метатэгов var param = $(‘meta[name=»csrf-param»]’).attr(«content»); var token = $(‘meta[name=»csrf-token»]’).attr(«content»); $.ajax({ url: ‘https://help1c.su’, type: ‘post’, dataType: ‘json’, data: {‘data1’: data1, ‘data2’: data2,....., param : token}, }); |
Напечатайонлайн.рф — печатная продукция в Иркутске
-
wra
- Сообщения: 37
- Зарегистрирован: 2009.10.28, 13:48
Проблема с CSRF
Проблема при установке параметра в конфиге:
Код: Выделить всё
'request'=>array(
'enableCsrfValidation'=>true,
),
После этого невозможно удалить запись (например статью или комментарий в моем случае). Вываливает 400-ошибку: «Невозможно определить CSRF.»
Есть идеи как это решить?
-
wra
- Сообщения: 37
- Зарегистрирован: 2009.10.28, 13:48
Re: Проблема с CSRF
Сообщение
wra » 2009.11.12, 14:19
Спасибо. Идея понятна. С реализацией проблема…
Удаление идет по ссылке, на которую наверчена отправка jQuery-формы:
Код: Выделить всё
/*<![CDATA[*/
jQuery(document).ready(function() {
jQuery('#yt0').click(function(){if(confirm('Точно удалить?')) {jQuery.yii.submitForm(this,'/articles/delete/id/10',{});return false;} else return false;});
});
/*]]>*/
Подскажите каким образом сюда можно вставить скрытое поле? Или как то по другому делается?
-
Обратите внимание что маленькие лимиты других директив, таких как к примеру memory_limit — так же будут влиять на работу Вашего MailWizz
Перейти к содержимому
Такая ошибка обычно говорит, что проблема с токеном CSRF. Токена нет или токен не тот. Этот токен нужно передавать как в POST так и в AJAX запросах.
На английском эта ошибка звучит так:
Bad Request (#400): Unable to verify your data submission
Проблему можно решить тремя способами:
Два неправильных способа — отключить проверку для всего приложения в конфиге или отключить в конкретном месте. Смотрите код ниже:
//В файле конфигурации отключаем для всего приложения ‘components’ => [ ‘request’ => [ ... ‘enableCsrfValidation’=>false, ... ], ... ], // Отключаем в конкретном месте $this—>enableCsrfValidation = false; |
А теперь правильный способ.
Всегда передавать валидный CSRF токен! В Yii2 для этого есть все инструменты.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//В мета тэгах вашего шаблона echo Html::csrfMetaTags(); //это добавит строки содержащие имя параметра и сам токен <meta name=«csrf-param» content=«_csrf»> <meta name=«csrf-token» content=«OTDOwBtYk-tsjYLIgTAXrqhKwU-WgneMk_TpFcbE6DwPCIu3XRPJhj202Jn0Z3TP4Ry3ecevOcC-x4ZQkKu8dg==»> //В формах <input type=«hidden» name=«_csrf» value=«OTDOwBtYk-tsjYLIgTAXrqhKwU-WgneMk_TpFcbE6DwPCIu3XRPJhj202Jn0Z3TP4Ry3ecevOcC-x4ZQkKu8dg==»> //Если форму создавать методами ActiveForm::begin() и Html:beginForm(), то input будет подставляться автоматически //Если же вы сами создаёте форму, то пишите так <input type=«hidden» name=«<?=Yii::$app—>request—>csrfParam; ?>« value=«<?=Yii::$app—>request—>getCsrfToken(); ?>« /> //Если отправляете ajax запрос, то в javascript можно получить csrf токен из метатэгов var param = $(‘meta[name=»csrf-param»]’).attr(«content»); var token = $(‘meta[name=»csrf-token»]’).attr(«content»); $.ajax({ url: ‘https://help1c.su’, type: ‘post’, dataType: ‘json’, data: {‘data1’: data1, ‘data2’: data2,....., param : token}, }); |
Напечатайонлайн.рф — печатная продукция в Иркутске
-
wra
- Сообщения: 37
- Зарегистрирован: 2009.10.28, 13:48
Проблема с CSRF
Проблема при установке параметра в конфиге:
Код: Выделить всё
'request'=>array(
'enableCsrfValidation'=>true,
),
После этого невозможно удалить запись (например статью или комментарий в моем случае). Вываливает 400-ошибку: «Невозможно определить CSRF.»
Есть идеи как это решить?
-
wra
- Сообщения: 37
- Зарегистрирован: 2009.10.28, 13:48
Re: Проблема с CSRF
Сообщение
wra » 2009.11.12, 14:19
Спасибо. Идея понятна. С реализацией проблема…
Удаление идет по ссылке, на которую наверчена отправка jQuery-формы:
Код: Выделить всё
/*<![CDATA[*/
jQuery(document).ready(function() {
jQuery('#yt0').click(function(){if(confirm('Точно удалить?')) {jQuery.yii.submitForm(this,'/articles/delete/id/10',{});return false;} else return false;});
});
/*]]>*/
Подскажите каким образом сюда можно вставить скрытое поле? Или как то по другому делается?
-
Ozzy
- Сообщения: 269
- Зарегистрирован: 2009.04.02, 15:09
- Откуда: Украина, Одесса
Re: Проблема с CSRF
Сообщение
Ozzy » 2009.11.13, 01:44
Ну так это полюбому submitForm, значит где то вверху форма таки определяется?
-
wra
- Сообщения: 37
- Зарегистрирован: 2009.10.28, 13:48
Re: Проблема с CSRF
Сообщение
wra » 2009.11.13, 18:39
Вот этот:
Код: Выделить всё
/*<![CDATA[*/
jQuery(document).ready(function() {
jQuery('#yt0').click(function(){if(confirm('Точно удалить?')) {jQuery.yii.submitForm(this,'/articles/delete/id/10',{});return false;} else return false;});
});
/*]]>*/
-
samdark
- Администратор
- Сообщения: 9473
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Проблема с CSRF
Сообщение
samdark » 2009.11.13, 22:13
Нет, это то, что получается в итоге. Должен быть PHP-код, который это нагенерил.
-
wra
- Сообщения: 37
- Зарегистрирован: 2009.10.28, 13:48
Re: Проблема с CSRF
Сообщение
wra » 2009.11.15, 12:15
Вот генерация:
Код: Выделить всё
<li><?=CHtml::linkButton('удал',array(
'submit'=>array('articles/delete','id'=>$Article->articleId),
'confirm'=>"Точно удалить?",'class'=>'delete'))?></li>
-
wra
- Сообщения: 37
- Зарегистрирован: 2009.10.28, 13:48
Re: Проблема с CSRF
Сообщение
wra » 2009.11.15, 13:31
Добавление в linkButton:
Код: Выделить всё
'YII_CSRF_TOKEN'=>Yii::app()->request->csrfToken
дало то, что в саму ссылку дабавился этот параметр со значением. Но это не помогло создать скрытое поле (я так понимаю и не должно было). Поясните пожалуйста на примере как добавляется скрытое поле а форму, которая генерится через linkButton(). Либо если можно передавать не только через скрытое поле, то поясните как…
-
delvin
- Сообщения: 85
- Зарегистрирован: 2009.11.13, 15:29
Re: Проблема с CSRF
Сообщение
delvin » 2009.11.15, 19:28
linkButton в этом случае создает post-запрос динамически, т.е. никаких форм не создается и не отправляется.
Попробуй так:
Код: Выделить всё
<li><?=CHtml::linkButton('удал',array(
'submit'=>array('articles/delete','id'=>$Article->articleId),
'params'=>array('YII_CSRF_TOKEN' => Yii::app()->request->csrfToken,),
'confirm'=>"Точно удалить?",'class'=>'delete'))?></li>
I have a very strange problem. I have a login form in Yii which works fine. After moving the website to another server I get
Error 400 The CSRF token could not be verified
I don’t understand why it is working on the development server but not on the new server. here is my code:
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
<div class="row">
<?php echo $form->labelEx($model,'username'); ?>
<?php echo $form->textField($model,'username'); ?>
<?php echo $form->error($model,'username'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password'); ?>
<?php echo $form->passwordField($model,'password'); ?>
<?php echo $form->error($model,'password'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Submit'); ?>
</div>
<?php $this->endWidget(); ?>
and here is the csrf configuration in my config file:
'enableCsrfValidation' => !isset($_POST['dontvalidate']) ? true : false,
if you need to see the example. Here is the one which is working, and here is the one with the problem
Невозможно определить CSRF.
Модератор: Nabiba
Невозможно определить CSRF.
Здравствуйте
не загружаются фото пишет то ошибку 404 то Невозможно определить CSRF.
можно ли как то исправить??
спасибо
- tschayka
- Сообщения: 102
- Зарегистрирован: 26.08.2012 06:58
Re: Невозможно определить CSRF.
Nabiba » 06.08.2016 09:32
Добрый день,
В каком формате у вас фотографии и с какого устройства вы пытаетесь произвести загрузку?
-
Nabiba - Сообщения: 2160
- Зарегистрирован: 10.05.2012 10:50
Re: Невозможно определить CSRF.
tschayka » 08.08.2016 15:42
Добрый….
фотографии в jpg а устройство… ноутбук vaio
- tschayka
- Сообщения: 102
- Зарегистрирован: 26.08.2012 06:58
Re: Невозможно определить CSRF.
Nabiba » 08.08.2016 15:59
Добрый день
Ошибка очень странная, похоже в первую очередь на вредоносное ПО. Проверьте, пожалуйста, свое устройство на вирусы.
Если антивирусная программа вирусов не выявит, пришлите, пожалуйста, следующие данные:
название и версию браузера,что у вас за антивирус, а также скриншот страницы с ошибкой, чтобы на нем был виден адрес в адресной строке.
-
Nabiba - Сообщения: 2160
- Зарегистрирован: 10.05.2012 10:50
Re: Невозможно определить CSRF.
Elena Leo » 08.08.2016 16:02
Добрый день! Та же проблема. Второй день не могу опубликовать пост
Пишет: » Ошибка 400″ и «Невозможно определить CSRF»
Заново печатаю текст, прикрепляю фото…И всё улетает…ОЧЕНЬ жаль потраченного времени. Только порадовалась какой удобный и информативный стал сайт. Сглазила что ли?!!
Браузер Гугл, формат фото JPEG.
- Elena Leo
- Сообщения: 79
- Зарегистрирован: 22.10.2012 16:14
Re: Невозможно определить CSRF.
Nabiba » 08.08.2016 16:20
Добрый день
как я писала выше, похоже на вирус. Проверьте, пожалуйста, свое устройство на вирусы.
Если антивирусная программа вирусов не выявит, пришлите, пожалуйста, следующие данные:
версию браузера,что у вас за антивирус, а также скриншот страницы с ошибкой, чтобы на нем был виден адрес страницы в адресной строке.
-
Nabiba - Сообщения: 2160
- Зарегистрирован: 10.05.2012 10:50
Re: Невозможно определить CSRF.
Elena Leo » 08.08.2016 17:46
Nabiba писал(а):Добрый день
как я писала выше, похоже на вирус. Проверьте, пожалуйста, свое устройство на вирусы.Если антивирусная программа вирусов не выявит, пришлите, пожалуйста, следующие данные:
версию браузера,что у вас за антивирус, а также скриншот страницы с ошибкой, чтобы на нем был виден адрес страницы в адресной строке.
Антивирусник- обычный Касперский. Провела полную проверку. Ничего не обнаружено. Почистила куки с кешами. Попробовала снова опубликоваться с одной фотографией и без текста. И знаете, получилось!!
Вечером попробую ещё раз, но уже весь пост. Надеюсь виноваты были эти самые куки…
- Elena Leo
- Сообщения: 79
- Зарегистрирован: 22.10.2012 16:14
Re: Невозможно определить CSRF.
Verevochca » 24.02.2017 17:59
И у меня такая же ошибка третий день не могу разместить работу на ФФ.
Невозможно определить CSRF — вот что пишет… Что делать? Комп домашний ноут Леново, фото в JPG. На вирусы проверила утром, только завершилась, все ОК и снова та же ошибка…
- Verevochca
- Сообщения: 15
- Зарегистрирован: 16.06.2013 17:49
Вернуться в burdastyle.ru