Wordpress не використовує сеанси.
Мені завжди було цікаво, який механізм використовує WP для підтримки стану користувача, коли користувач переходить зі сторінки на сторінку?
Wordpress не використовує сеанси.
Мені завжди було цікаво, який механізм використовує WP для підтримки стану користувача, коли користувач переходить зі сторінки на сторінку?
Відповіді:
Він використовує голі файли cookie та зберігає клієнтську інформацію про стан входу.
wordpress_7339a175323c25a8547b5a6d26c49afa = yourusername% 7C1457109155% 7C170f103ef3dc57cdb1835662d97c1e13;
Сіль знаходиться у вашому файлі wp-config.php:
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
Файл cookie для автентифікації, ім'я якого зберігається всередині AUTH_COOKIE, утворюється шляхом об'єднання "wordpress_" з md5 сумою siteurl, встановленою в default-constants.php. Це поведінка за замовчуванням, і її можна змінити всередині вашого конфігураційного файлу, встановивши наперед деякі константи.
Файл cookie аутентифікації - це об'єднання імені користувача, часова марка, до якої дійсний файл cookie автентифікації. І HMAC, який є на зразок хеша з упередженим ключем для тих, хто витягнув TL; DR зараз. Три змінні об'єднані з символом труби |.
Ось як будується HMAC:
$hash = hash_hmac('md5', $username . '|' . $expiration, wp_hash($username . substr($user->user_pass, 8, 4) . '|' . $expiration, $scheme));
Згідно з цією статтею, де більшість інформації в цій відповіді надходило від неї, хакеру потрібно буде близько тижня, щоб жорстокі сили надсилати 30 запитів в секунду, якби вони знали, яка ваша унікальна фраза, і 200 000 000 000 000 000 000 000 000 000 000 разів важче, якщо ваші ключі унікальні.
Файли cookie - це просто зберігання даних сеансу на стороні клієнта ... WordPress Cookies
Насправді, можна мати файли cookie без сеансів, але без файлів cookie.
session_start()
явне використання . Тепер, очевидно, wordpress не має session_start()
ніде в своїй основі. Бачите, де мене бентежить ваш останній коментар?