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