WP_CREATE_NONCE() │ WP 2.0.3
Функция wp_create_nonce() создает уникальный ключ безопасности на короткий период времени (от 12 до 24 часов). Этот ключ помогает защитить ваш сайт от злоумышленников.
Как работает nonce?
Ключ создается на основе набора данных, которые варьируются в зависимости от того, авторизован ли пользователь:
Для авторизованных пользователей:
- timestamp (метка времени)
- action (действие)
- user_ID (идентификатор пользователя)
- $session_token (токен сессии)
- wp_salt (соль для безопасности)
Для неавторизованных пользователей:
- timestamp
- action
- wp_salt
Если одно из значений изменится, nonce тоже изменится. Это делает предсказание nonce практически невозможным. Чем больше переменных используется при его формировании, тем уникальнее будет nonce.
Для всех неавторизованных пользователей создается один и тот же nonce-код. Например, можно зайти на сайт, скопировать nonce из HTML-кода или запроса и использовать его злонамеренно против другого неавторизованного пользователя. Поэтому использование nonce как защиты для неавторизованных пользователей не имеет большого смысла.
Время жизни nonce
Срок действия ключа nonce можно изменить с помощью фильтра nonce_life:
$nonce_life = apply_filters( 'nonce_life', DAY_IN_SECONDS );
Учтите, что указанное значение делится на 2. По умолчанию nonce создается на 24 часа, и при проверке nonce с помощью функции wp_verify_nonce() результат будет равен 1 или 2 в зависимости от того, к какой половине он относится (первая половина — первые 12 часов, вторая — вторые 12 часов).
Функцию нужно использовать во время или после события init, иначе могут возникнуть проблемы.
Как использовать nonce
Функция wp_create_nonce() используется следующим образом:
wp_create_nonce( $action );
- $action (строка): значение, на основании которого будет создан уникальный ключ. По умолчанию: -1.
Примеры использования
Пример 1: Основной пример
echo wp_create_nonce(); // вывод: c6d25d33be
Пример 2: Создание nonce токена для формы
...
Изменение и замена функции
Функция wp_create_nonce() является заменяемой - это означает, что вы можете создать функцию с таким же именем в вашем плагине, и она заменит оригинальную функцию. Однако, помните, что она будет работать только после загрузки всех плагинов, поэтому нужно вызывать её на хуке plugins_loaded или позже.
Возвращаемое значение
Эта функция возвращает строку — уникальную комбинацию символов.
Связанные функции
wp_nonce_field()wp_nonce_url()wp_verify_nonce()
Функция wp_create_nonce() используется для увеличения безопасности вашего сайта в WordPress, добавляя дополнительный уровень защиты к действиям пользователей.