logrando la implementación de inicio de sesión sin usar sesiones

9

Wordpress no usa sesiones.

Siempre me pregunté qué mecanismo usa WP para mantener un estado de usuario cuando el usuario pasa de una página a otra.

    
pregunta Average Joe 03.05.2012 - 10:41

2 respuestas

12

Utiliza cookies simples y almacena la información del estado de inicio de sesión del lado del cliente.

+

=

  

wordpress_7339a175323c25a8547b5a6d26c49afa = nombre de usuario% 7C1457109155% 7C170f103ef3dc57cdb1835662d97c1e13;

¿De dónde vienen todas estas galletas y la sal?

La sal está en tu archivo 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');

Las frases únicas se utilizan en una función hash criptográfica

La cookie de autenticación, cuyo nombre se almacena dentro de AUTH_COOKIE, que se forma mediante la concatenación de "wordpress_" con la suma md5 del siteurl establecido en default-constants.php. Este es el comportamiento predeterminado y se puede anular desde dentro de su archivo de configuración, configurando algunas de las constantes por adelantado.

La cookie de autenticación es una concatenación del nombre de usuario, una marca de tiempo hasta la cual la cookie de autenticación es válida, y un HMAC, que es una especie de hash con sesgo de clave para aquellos que obtuvieron un TL; DR en este momento. Las tres variables se concatenan con el carácter de canalización.

Aquí es cómo se construye el HMAC:

$hash = hash_hmac('md5', $username . '|' . $expiration, wp_hash($username . substr($user->user_pass, 8, 4) . '|' . $expiration, $scheme));

¿Esto es seguro?

Según este artículo de donde provino la mayor parte de la información de esta respuesta, un pirata informático tardaría una semana en enviar una fuerza bruta en el envío de 30 solicitudes por segundo si supieran cuál es su frase única y 200,000,000,000,000,000,000,000,000,000 veces más difícil si sus claves son únicas.

    
respondido por el Chris_O 03.05.2012 - 11:49
0

Las cookies son solo el almacenamiento del lado del cliente de los datos de sesión ... Cookies de WordPress

De hecho, uno puede tener cookies sin sesiones, pero no sesiones sin cookies.

    
respondido por el Martin Zeitler 09.05.2012 - 08:31

Lea otras preguntas en las etiquetas