Wordpress nie korzysta z sesji.
Zawsze zastanawiałem się, jakiego mechanizmu używa WP do utrzymania stanu użytkownika, gdy użytkownik przechodzi ze strony na stronę?
Wordpress nie korzysta z sesji.
Zawsze zastanawiałem się, jakiego mechanizmu używa WP do utrzymania stanu użytkownika, gdy użytkownik przechodzi ze strony na stronę?
Odpowiedzi:
Wykorzystuje nagie pliki cookie i przechowuje informacje o stanie logowania po stronie klienta.
wordpress_7339a175323c25a8547b5a6d26c49afa = nazwa użytkownika% 7C1457109155% 7C170f103ef3dc57cdb1835662d97c1e13;
Sól znajduje się w pliku 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');
Ciasteczko uwierzytelniające, którego nazwa jest przechowywana w AUTH_COOKIE, które powstaje przez połączenie „wordpress_” z sumą md5 siteurl ustawioną w default-constants.php. Jest to zachowanie domyślne i można je zastąpić w pliku konfiguracyjnym, ustawiając niektóre stałe z góry.
Ciasteczko uwierzytelniające jest konkatenacją nazwy użytkownika, znacznikiem czasu, do którego plik cookie uwierzytelniania jest ważny. Oraz HMAC, który jest swego rodzaju skrótem kluczowym dla tych, którzy wyciągnęli TL; DR w tej chwili. Trzy zmienne są powiązane ze znakiem potoku |
Oto jak zbudowany jest HMAC:
$hash = hash_hmac('md5', $username . '|' . $expiration, wp_hash($username . substr($user->user_pass, 8, 4) . '|' . $expiration, $scheme));
Zgodnie z tym artykułem, skąd pochodzi większość informacji zawartych w tej odpowiedzi, włamanie do hakera zajęłoby około tygodnia wysyłanie 30 próśb na sekundę, gdyby wiedzieli, co to jest Twoja wyjątkowa fraza i 200 000 000 000 000 000 000 000 000 000 000 000 razy więcej, jeśli twoje klucze są unikalne.
Pliki cookie to tylko przechowywanie danych sesji po stronie klienta ... Pliki cookie WordPress
W rzeczywistości można mieć pliki cookie bez sesji, ale żadnych sesji bez plików cookie.
session_start()
jawnie. Teraz, oczywiście, wordpress nie ma session_start()
nigdzie w swoim rdzeniu. Widzisz, gdzie jestem zaskoczony twoim ostatnim komentarzem?