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‘ в приведенном примере должно быть заменено на уникальное имя, соответствующее вашему коду и контексту использования.