csrf

CSRF Межсайтовая подделка запроса -- что это такое (цсрф, МПЗ)

CSRF (Сross Site Request Forgery) -- говорить о межсайтовой подделке запроса (МПЗ) можно всегда, когда в какой-то другой системе (скажем на другом сайте) пользователя заставляют (так или иначе) перейти по ссылке (возможно неявно), переход по которой проведёт на вашем сайте какое-то действие.

Примеры CSRF уязвимостей и их эксплуатации

Самый простой пример -- картника размещённая на чужом сайте, в качестве адреса которой указана ссылка на обработчик, производящий какие-то действия на вашем сайте.

yii2 ajax Bad Request (#400): Unable to verify your data submission. -- Сразу для ajax всех запросов

Для решени проблемы типа (ещё мы уже обсуждали):

Ошибка Bad Request (#400): Unable to verify your data submission. (Не удалось проверить проверить переданные данные

При использовании jquery и при условии того, что js подключается после html view, можно применять следующий приём --

в HTML

в представление (view) добавить определение такой JS переменной:

yii2 Отключить блокировку csrf для действия action/контроллера

Управляйте полем контроллера enableCsrfValidation .

Например в проверке перед действиями:

public function beforeAction($action)
{            
    if ($action->id == 'my-action') {
        $this->enableCsrfValidation = false;
    }

    return parent::beforeAction($action);
}

где my-action -- имя действия.

Или можно выключить для всего контроллера:

public $enableCsrfValidation = false;

(не рекомендуется)

Yii2 пользовательская ссылка для выхода из системы - submit link. logout (form, POST)

Представление

Пример простенькой минимальной формы со скрытым полем безопасности CSRF для выхода из системы при стандартной реализации пользователя для Yii2 advanced (используется JS-обработчик события, который отправляет скрытую форму, встроенную в страницу):

Subscribe to RSS - csrf