WP_CREATE_NONCE(): Как создать уникальные ключи безопасности в WordPress

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

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *