Como limpar os cookies de sessão após o logout?

O WordPress gera alguns cookies de sessão que, embora não armazenem dados pessoais ou sensíveis, permanecem no navegador do usuário que esteve logado ao website por qualquer razão. À luz do novo regulamento do RGPD, tal permanência de cookies é indesejável, além de tecnicamente desnecessária.

Contudo, como livrar-se desses cookies de forma automatizada? A seguir explicamos como utilizar uma solução em código simples para tal.

A solução passa por duas etapas:

  1. Primeiro, utiliza-se a “hook” wp-logout para acionar a função sempre que o usuário efetuar a saída do sistema. A função usa setcookie para deletar todos os cookies gerados a partir do domínio do website.
  2. No segundo passo, o redirecionamento é feito para a página inicial do website e não mais para o login do WordPress, que seria o redirecionamento padrão. Isto porque a página de login geraria um novo cookie.

 

add_action('wp_logout', function () {
 array_map(function ($k) {
  setcookie($k, FALSE, time()-YEAR_IN_SECONDS, '', COOKIE_DOMAIN);
 }, array_keys($_COOKIE));
  // Redireciona para o 'siteurl' ao invés do ecrã de login
  // o URL de login geraria um novo cookie
 header('Location: '.get_option('siteurl'));
 exit();
}, 99999);

 

O código pode ser utilizado em qualquer tema ou plugin para gerar o efeito. De forma mais recomendável, deve-se utilizar o código no ficheiro functions.php de um tema filho ou em um plugin customizado, para evitar que seja apagado em atualizações.

Como determinar o uso de cookies seguros no WordPress?

Já falamos sobre ataques de sequestro de sessão e sobre como o atributo HttpOnly pode ajudar a reduzir esse risco. O WordPress é um CMS que utiliza alguns cookies de sessão, especialmente em sites que permitem o login por parte dos usuários. Por definição, os cookies configurados pelo WordPress não necessariamente possuem tal atributo, mas é possível estabelecer tal norma com relativa facilidade.

plugins a fazê-lo, porém para aqueles que têm algum conhecimento de como funciona a estrutura do WordPress, o jeito mais fácil e rápido é inserir algumas simples linhas de código no ficheiro wp-config.php, no diretório raiz do website. É bom lembrar que, antes de realizar qualquer alteração nesse ficheiro de sistema, é sempre bom guarda uma cópia de segurança do mesmo.

Após realizar uma cópia de segurança, basta abrir o ficheiro num editor de texto qualquer e inserir as seguintes linhas de código ao final:

@ini_set('session.cookie_httponly', true);
@ini_set('session.cookie_secure', true);
@ini_set('session.use_only_cookies', true);

Como dissemos anteriormente, é possível realizar tais alterações por meio de plugins de segurança, como o Shield Security for WordPress, por exemplo. Porém, a grande maioria dos plugins que realiza esse trabalho possui imensas outras funcionalidades, algumas delas dispensáveis e que podem causar problemas de desempenho num website.