obter implementação de login sem usar sessões

9

O Wordpress não usa sessões.

Sempre me perguntei qual mecanismo o WP usa para manter o estado do usuário quando o usuário passa de uma página para outra?

    
por Average Joe 03.05.2012 / 10:41

2 respostas

12

Ele usa cookies nus e armazena o lado do cliente de informações de estado de login.

+

=

  

wordpress_7339a175323c25a8547b5a6d26c49afa = yourusername% 7C1457109155% 7C170f103ef3dc57cdb1835662d97c1e13;

De onde vêm todos esses biscoitos e sal?

O sal está no seu arquivo 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');

As frases únicas são usadas em uma função hash criptográfica

O cookie de autenticação, cujo nome é armazenado dentro de AUTH_COOKIE, que é formado pela concatenação de "wordpress_" com a soma md5 do siteurl definido em default-constants.php. Este é o comportamento padrão e pode ser substituído dentro de seu arquivo de configuração, configurando algumas das constantes antecipadamente.

O cookie de autenticação é uma concatenação do nome de usuário, um carimbo de data e hora até o qual o cookie de autenticação é válido, e um HMAC, que é uma espécie de hash baseado em chave para quem puxou um TL; As três variáveis são concatenadas com o caractere pipe |.

Veja como o HMAC é construído:

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

Isso é seguro?

De acordo com este artigo onde a maior parte das informações dessa resposta chegava, levaria um hacker cerca de uma semana à força bruta ao enviar 30 solicitações por segundo, se soubesse qual era a sua frase original e 200.000.000.000.000.000.000.000.000.000.000 vezes mais difícil se suas chaves fossem únicas.

    
por Chris_O 03.05.2012 / 11:49
0

Os cookies são apenas o armazenamento do lado do cliente dos dados da sessão ... Cookies do WordPress

Na verdade, é possível ter cookies sem sessões, mas sem sessões sem cookies.

    
por Martin Zeitler 09.05.2012 / 08:31

Tags