Выберите язык

Регистрация

CSRF (Cross-Site Request Forgery) — атака, при которой браузер пользователя отправляет нежелательный запрос на сайт, где пользователь уже вошёл в систему. Для Joomla это особенно важно при сохранении данных и выполнении действий в учётной записи.

Почему возможна подделка запроса

Браузер может автоматически приложить cookie к запросу. Если сервер считает самого наличия сессии достаточным подтверждением намерения, действие может выполниться без согласия человека. Атакующему не обязательно знать пароль или прочитать ответ.

Защита в Joomla

Формы Joomla используют токен, который сервер проверяет до выполнения действия. Разработчику расширения важно не только вывести токен в форме, но и проверить его в обработчике. AJAX-запросы тоже должны передавать необходимые данные для проверки.

Изменения состояния не следует выполнять через обычный GET-запрос. SameSite для cookie и проверка контекста запроса дополняют защиту. Один только переход на POST не заменяет проверку токена.

Практическая проверка

После изменения форм Joomla проверяют отправку с действующим токеном и корректный отказ при его отсутствии. Кэшированная форма со старым токеном может вызывать ошибку даже у обычного посетителя. Исправлять такой сбой отключением проверки нельзя.

CSRF отличается от XSS, при котором посторонний код выполняется в контексте страницы. Защита от CSRF также не заменяет проверку прав пользователя на конкретную операцию.

Вывод

Защита от CSRF подтверждает допустимость запроса в текущем сеансе. Надёжная обработка сочетает токены, подходящие методы HTTP и проверку полномочий.

Упоминания:

CORS

Список терминов
Весь глоссарий
Подписка на рассылку
Введите свой адрес электронной почты, и мы будем держать вас в курсе событий!

Joomla.center не связан с проектом Joomla!® или организацией Open Source Matters и не получает от них поддержки. Название и логотип Joomla!® используются на основании ограниченной лицензии, предоставленной Open Source Matters, владельцем товарного знака в США и других странах.