Руководство по одноразовым номерам в WordPress
Опубликовано: 2023-02-12Безопасность является жизненно важной темой для всех владельцев веб-сайтов. Несмотря на то, что существует множество стратегий обеспечения безопасности вашего веб-сайта, нельзя упускать из виду использование одноразовых номеров в WordPress. Это одна из наиболее широко используемых функций безопасности, которая предотвращает ряд потенциальных проблем.
Одноразовый номер — это «одноразовый номер», который защищает формы и URL-адреса от злоумышленников и других неправомерных действий. Эти числа работают как идентификационные значения, которые браузеры пользователей должны отображать, чтобы получить разрешение на выполнение конфиденциальных действий.
В этой статье мы рассмотрим, как одноразовые номера работают в WordPress и как их создавать. Затем мы обсудим, как проверить одноразовый номер. Давайте начнем!
Как работают одноразовые номера в WordPress?
Основная цель одноразового номера — защитить ваш веб-сайт WordPress от вредоносных атак, таких как подделки межсайтовых запросов (CSRF). Этот тип атаки обманом заставляет пользователей отправить форму или щелкнуть ссылку, которая наносит вред вашему веб-сайту. Чтобы защитить ваш сайт, WordPress проверяет значение nonce и разрешает выполнение действия только в том случае, если это значение правильное.
Nonces уже являются частью функциональности WordPress, и вам не нужно добавлять их в элементы, созданные WordPress. Это означает, что ключевые действия, такие как добавление и редактирование сообщений, автоматически защищены.
Когда используется одноразовый номер, его срок службы по умолчанию составляет 24 часа. По истечении этого времени одноразовый номер больше нельзя использовать для проверки действия, для которого он был определен. Однако этот срок жизни может быть скорректирован администраторами веб-сайта.
Одной из наиболее распространенных CSRF-атак, от которых защищают одноразовые номера, является злонамеренное удаление учетных записей пользователей. После реализации одноразового номера ваш экран администратора сгенерирует URL-адрес для удаления учетной записи. WordPress добавит одноразовый номер в конец этого URL-адреса, который будет выглядеть примерно так:
http://вашдомен.com/wp-admin/users.php?user=7&action=delete&_wpnonce=c214gd5315
Если злоумышленник попытается заменить идентификатор пользователя другим значением, например «user=8», одноразовый номер будет недействительным. Удаление учетной записи не удастся, и отобразится страница ошибки 403 Forbidden. Это значительно усложняет атаку злоумышленников на содержимое вашего сайта.
Важно знать, что одноразовые номера могут защитить ваш веб-сайт, но вам также необходимо понимать, как их реализовать. Хотя они уже активны для функций WordPress по умолчанию, вам может потребоваться реализовать их вручную для ваших тем и плагинов.
Создание одноразового номера
Чтобы создать одноразовый номер, вам нужно добавить функцию в код вашего веб-сайта. Все коды создания nonce размещаются в файле functions.php . Чтобы открыть этот файл, перейдите в «Внешний вид» > «Редактор тем» на панели управления WordPress. Справа нажмите на functions.php , чтобы открыть редактор файлов.
Nonces реализуются отдельно для URL-адресов, форм и действий. Чтобы создать одноразовый номер действия, добавьте в этот файл следующий код:
$nonce= wp_create_nonce('$action');
Раздел кода «$action» должен быть скорректирован, чтобы отразить действие, которое вы хотите проверить с помощью одноразового номера. Примером может служить действие «удалить сообщение», которое устанавливает одноразовый номер для проверки пользователей, пытающихся удалить сообщения.
Чтобы создать одноразовый номер для URL-адреса, вы можете использовать следующий код:
$nonce= wp_nonce_url();
В скобках вам нужно указать аргументы функции. Это голый URL-адрес и строка для действий пользователя. Строка должна быть специфичной для одного пользователя, чтобы повысить безопасность одноразового номера.
Если вы хотите создать одноразовый номер для удаления учетной записи пользователя, вы можете использовать этот фрагмент:
$nonce= wp_nonce_url($bare_url,'delete-user_'.$user->ID);
По умолчанию WordPress использует для имени nonce значение «_wpnonce», но вы можете обновить его, добавив выбранное имя в конец приведенной выше строки.
Чтобы создать одноразовый номер для формы, включите этот код:
$nonce= wp_nonce_field();
В скобках вам нужно будет добавить строку для действий пользователя. После этого функция создает в форме два скрытых поля, первое из которых содержит хеш-значение одноразового номера. Второе поле — текущий URL. Окончательная функция должна выглядеть примерно так:
$nonce= wp_nonce_field('remove-comment_'.$comment_id);
Эта одноразовая функция также будет иметь одноразовое имя WordPress по умолчанию. Тем не менее, это также то, что вы можете изменить, если хотите.
Проверка одноразового номера
После добавления одноразового номера на ваш веб-сайт WordPress важно проверить его. Это гарантирует, что одноразовый номер работает правильно и обеспечивает безопасность вашего сайта.
Различные методы используются для проверки одноразового номера для URL-адресов и форм. Чтобы проверить одноразовый URL-адрес, добавьте следующий код в файл functions.php :
wp_verify_nonce($nonce, $action);
В этой функции настройте «$nonce» на имя одноразового номера, который вы хотите проверить, например, «удалить-пользователя». Затем измените строку «$ action» на конкретное время создания одноразового номера. Когда функция запускается, она возвращает «false», если одноразовый номер недействителен.
С другой стороны, если одноразовый номер действителен, функция вернет либо 1, либо 2. Это говорит вам о возрасте одноразового номера. Значение, равное 1, означает, что одноразовый номер был создан за последние 12 часов. Значение, равное 2, означает, что одноразовый номер был создан более 12 часов, но менее 24 часов назад.
Если вы добавили одноразовый номер в форму, для его проверки требуется следующий код:
check_admin_referer($action, $nonce);
Если значение nonce допустимо, форма будет функционировать так, как задумано. Однако, если одноразовый номер недействителен, браузер пользователя перенаправит его на страницу с ошибкой 403 Forbidden.
Создавайте безопасные цифровые решения на движке WP
Безопасность жизненно важна для стабильной работы веб-сайта, а одноразовые номера добавляют дополнительный уровень защиты. Чтобы реализовать их, все, что вам нужно сделать, это добавить код в файл functions.php . Используемый код зависит от типа одноразового номера, который вы хотите создать, и действия, которое вы хотите защитить.
Хотя создание и реализация одноразовых номеров повышает безопасность сайта, необходимо учитывать и другие протоколы безопасности. К счастью, безопасная хостинговая платформа WordPress от WP Engine предлагает одни из лучших ресурсов безопасности для пользователей и разработчиков. Это оставляет вам больше времени, чтобы сосредоточиться на совершенствовании вашего сайта WordPress!