Функция wp_salt()
возвращает строку с солью (salt), которая добавляется к хэшам для повышения безопасности в WordPress. Соление (salting) помогает усложнить взлом паролей и защитить данные от атак с использованием заранее известных хэшированных значений (например, словарные атаки).
wp_salt( string $scheme = 'auth' ): string
Соли создаются на основе секретных ключей. Секретные ключи находятся в двух местах:
- В базе данных.
- В файле
wp-config.php
.
Секретные ключи в wp-config.php
должны быть уникальными и случайно сгенерированными для максимальной безопасности. Секретные ключи в базе данных генерируются случайно и объединяются с ключами из wp-config.php
.
Пример секретных ключей в wp-config.php
:
define( 'AUTH_KEY', 'пример ключа' );
define( 'SECURE_AUTH_KEY', 'пример ключа' );
define( 'LOGGED_IN_KEY', 'пример ключа' );
define( 'NONCE_KEY', 'пример ключа' );
define( 'AUTH_SALT', 'пример соли' );
define( 'SECURE_AUTH_SALT', 'пример соли' );
define( 'LOGGED_IN_SALT', 'пример соли' );
define( 'NONCE_SALT', 'пример соли' );
Параметры
- $scheme (string) (необязательный): Тип схемы аутентификации, для которой требуется получить соль. Возможные значения:
'auth'
: для обычной аутентификации (по умолчанию);'secure_auth'
: для более защищенной аутентификации;'logged_in'
: для схемы аутентификации вошедших пользователей;'nonce'
: для одноразовых кодов (nonce).
'auth'
.
Возвращаемые значения
- string: Строка с солью для указанной схемы аутентификации.
Пример 1: Получение соли для схемы аутентификации вошедших пользователей ('logged_in'
)
$salt = wp_salt( 'logged_in' );
echo $salt;
Вывод:
f1Z9&LbX*0]~Qp|M4V}mW^3Z9$Px~S{yB7nT<qK&Hg[Ux!Dk@A84:Rn{+Cj7/fY`aT!cL{1@#N9&GwQsE5=Ju!P#2nM-Y/oXz=8K|^$pT>vV7*x
Пример 2: Получение соли для одноразовых кодов ('nonce'
)
$nonce_salt = wp_salt( 'nonce' );
echo $nonce_salt;
Вывод:
gR]>WZX ~_vY?DS+j|F+,Sdt}lG}(R6F|xlM+e~ho]KD}n1#h4)]0u|O4!<>|;YY
Генерация уникальных ключей
Для генерации уникальных ключей для файла wp-config.php
можно воспользоваться специальным сервисом WordPress: Ссылка для генерации секретных ключей.
Важные моменты
- Секретные ключи в
wp-config.php
: Для обеспечения безопасности ваши ключи должны быть сильными и случайными. - Salting паролей: Добавление соли делает взлом паролей значительно сложнее для злоумышленников, которые используют предварительно вычисленные хэши словарных значений.
- Pluggable функция:
wp_salt()
является pluggable, что означает, что она может быть переопределена в пользовательских плагинах. Это важно учитывать при разработке плагинов, чтобы предотвратить конфликты.
Связанные хуки
salt
: Хук, который срабатывает при генерации соли.
Использование соли для создания хэша:
$password = 'mypassword';
$salt = wp_salt( 'secure_auth' );
$hash = hash( 'sha256', $password . $salt );
echo $hash;
Заключение
Функция wp_salt()
обеспечивает дополнительную безопасность при хэшировании данных в WordPress, добавляя уникальные соли, что затрудняет взлом данных, таких как пароли и одноразовые коды (nonce).