Как использовать WordPress Nonce
Что такое WordPress Nonce?
Как упоминается в Кодексе WordPress, одноразовый номер WordPress – это «число, используемое один раз», чтобы помочь защитить URL-адреса и формы от определенных типов неправомерного использования, злонамеренного или иного.
Одноразовый номер – это не что иное, как токен безопасности, который следует использовать во время разработки, чтобы избежать атак CSRF (подделка межсайтовых запросов).
При разработке темы или плагина nonce следует использовать в форме или в URL-адресе. Как разработчик WordPress, использование nonce – хорошая практика.
Как использовать одноразовый номер в форме
Как уже упоминалось, nonce – это токен для предотвращения атак CSRF. Имея дело с формами, мы должны добавить этот одноразовый номер в наши формы. Чтобы добавить одноразовый номер в форму, мы используем скрытое поле.
<input type="hidden" name="FIELD_NAME" value="<?php echo wp_create_nonce('NONCE_NAME'); ?>"
В приведенном выше коде замените FIELD_NAME & NONCE_NAME на что угодно.
Проверить, действителен ли одноразовый номер?
После того, как вы добавили одноразовый номер в форму, вам необходимо проверить, действителен ли передаваемый одноразовый номер после отправки формы. WordPress предоставляет функцию wp_verify_nonce для проверки допустимости одноразового номера.
if (wp_verify_nonce( $_REQUEST['FIELD_NAME'], 'NONCE_NAME')) {
//safe to proceed
} else {
die('Security Check!');
}
Как использовать одноразовый идентификатор в URL-адресе
CSRF-атаки также могут происходить на веб-сайтах через URL-адреса. Кроме того, для конфиденциальных страниц важную роль играет nonce. Допустим, у нас есть страница настроек на веб-сайте, которая содержит некоторые конфиденциальные данные, которые необходимо защитить. Мы также хотим защитить его от атак CSRF. Поэтому я создаю одноразовый URL-адрес для страницы настройки следующим образом.
<a href="<?php echo wp_nonce_url(get_bloginfo('url').'/settings', 'page-settings', 'setting-nonce'); ?>"></a>
Проверить, действителен ли одноразовый номер?
Теперь нам нужно проверить, действительна ли передача одноразового номера. Сделать это можно следующим образом. Здесь мы также используем функцию wp_verify_nonce() для проверки допустимости одноразового номера. Я добавлю код ниже вверху страницы настроек.
if (isset($_GET['setting-nonce']) && wp_verify_nonce($_GET['setting-nonce'], 'page-settings')) {
//safe tp proceed
}
Надеюсь, вы понимаете, как использовать WordPress Nonce. Если есть какие-либо вопросы или предложения, оставьте комментарий ниже.