Документация WordPress

check_ajax_referer

Функция check_ajax_referer() в WordPress используется для проверки переданных данных, чтобы убедиться, что запрос AJAX происходит от ожидаемого источника и что имеет допустимый безопасный код (nonce). Она обеспечивает защиту от атак подделки межсайтовых запросов (CSRF) при использовании AJAX в WordPress.

Пример кода с использованием check_ajax_referer():

В этом примере мы регистрируем два действия wp_ajax_my_ajax_action и wp_ajax_nopriv_my_ajax_action, которые соответствуют обработчику AJAX-запроса my_ajax_callback. Оба действия указывают на ту же функцию обратного вызова, чтобы обрабатывать запросы как от авторизованных пользователей, так и от неавторизованных.

Внутри функции my_ajax_callback мы вызываем check_ajax_referer(), передавая два аргумента: имя nonce (в данном случае ‘my_ajax_nonce‘) и имя поля nonce, которое ожидается в запросе (в данном случае ‘security‘).

Если проверка nonce успешна, вы можете продолжить с обработкой AJAX-запроса и выполнить необходимые операции. В этом примере мы просто выводим строку ‘Ответ на AJAX-запрос’ с помощью echo. Затем мы вызываем wp_die() для завершения скрипта и предотвращения дальнейшей обработки.

Важно убедиться, что при отправке AJAX-запроса на сервер вы также передаете nonce в поле ‘security‘. В противном случае check_ajax_referer() не пройдет проверку и запрос будет отклонен, и вы получите ошибку 403 по запросу, ее можно будет увидеть в панели разработчика в браузере.

Обратите внимание, что имя nonce ‘my_ajax_nonce‘ в приведенном примере должно быть заменено на уникальное имя, соответствующее вашему коду и контексту использования.

ajax