check_ajax_referer()
Перевіряє Ajax запит на відповідність коду nonce. Обриває роботу скрипта через die, якщо перевірку не пройдено.
За замовчуванням, шукає nonce код $_REQUEST[‘_ajax_nonce’] і $_REQUEST[‘_wpnonce’] .
Це init .
Заміна функції (перевизначення) — у плагіні можна створити функцію з такою самою назвою, тоді вона замінить поточну функцію.
wp_verify_nonce()
Хуки з функції
Повертає
int|false
. False якщо nonce код невалідний, 1 якщо nonce код валідний і був створений 0-12 годин тому, 2 якщо 12-24 години тому.
Використання
check_ajax_referer($action, $query_arg, $die);
-
$action
(рядок) -
Ключ, який був вказаний під час створення nonce коду. Вказується під час створення nonce, наприклад:
wp_create_nonce("my_action")
.
За замовчуванням: -1 -
$query_arg
(рядок) -
Назва ключа масиву
$_REQUEST , де знаходиться значення nonce рядка. Зверніть увагу, що сюди потрібно вказати назву ключа, а не значення nonce. Якщо нічого не вказати, то будуть перевірені значення
$_REQUEST[‘_ajax_nonce’] та
$_REQUEST[‘_wpnonce’] у пошуках коду nonce.
Типово: false -
$die
(логічний) Чи обривати обробку скрипта у випадку невдалої перевірки nonce коду:
- true – при невдалій перевірці nonce виконання скрипту буде перервано і функція виведе на екран ‘-1’ . Якщо це ajax запит, то також буде встановлено код відповіді 403 (заборонено доступ).
- false – не перерве обробку та функція поверне false/Int, залежно від результату перевірки.
Типово: true
Приклади
#1 Створення та перевірка nonce коду в AJAX запиті
В основному файлі встановлюємо так:
<?php // встановимо Nonce $ajax_nonce = wp_create_nonce("my-special-string"); ?> <script type="text/javascript"> jQuery(document).ready(function($){ var data = { action: 'my_action', security: '<?php echo $ajax_nonce; ?>', my_string: 'Hello World!' }; $.post(ajaxurl, data, function(response) { alert("Response:" + response); }); }); </script>
Краще використовувати wp_enqueue_script() .
Потім, перевіряємо nonce рядок при обробці Ajax запиту:
add_action( 'wp_ajax_my_action', 'my_action_function'); function my_action_function() { check_ajax_referer( 'my-special-string', 'security'); echo $_POST['my_string']; die; }
Ми створили nonce рядок з ідентифікатором my-special-string
і під час обробки його перевірили.
Щоб не задавати другий аргумент ‘security’ у функції check_ajax_referer(), достатньо назвати nonce: _wpnonce або _ajax_nonce .
список змін
З версії 2.0.3 | Введено. |