O wp_logout_url () destrói uma sessão? (Fazendo logout)

4

Eu tenho um problema ridículo com o registro de usuários fora do meu site. Basicamente, o cliente tem dados confidenciais e quando eu chamo wp_logout_url I redireciono para outro URL. Tudo bem, mas o navegador armazena a página em cache e pode ser visto pressionando BACK .

Existe QUALQUER maneira de impedir que isso aconteça ou é um problema que não pode ser resolvido?

O site é protegido por um formulário de login no front-end, por isso não é / wp-admin .

    
por SMacFadyen 19.09.2012 / 15:35

2 respostas

3

Isso não é surpreendente ou incomum, é como os navegadores funcionam, as páginas são armazenadas em cache e fazem parte do histórico do navegador. Isso não é específico para o WordPress, mas muitos aplicativos da web por aí.

Existem também diferentes abordagens para fornecer uma solução. Para um (não muito boa solução), limpar o histórico do navegador .

Por outro - enviando cabeçalhos de cache especiais, como o Twitter. Confira o RFC para detalhes.

Certificando-se de que uma página da Web não está armazenados em cache em todos os navegadores também é um bom ponto de partida.

Você pode adicionar os cabeçalhos anti-cache para usuários logados que examinam informações confidenciais. Todas as páginas com informações confidenciais teriam que ter esses cabeçalhos para que os navegadores possam obedecê-las e revalidar ao pressionar de volta após o logout. Para todos os outros (não logado), mantenha o cache do navegador disponível, o que geralmente é uma boa ideia.

Configurando cabeçalhos no WordPress , contra is_user_logged_in ou user_can é bem direto.

add_action( 'init', function() {
    /* Force no-cache headers on *ALL* front pages and in *ALL* cases */
    /* Proof of concept, do not use */
    header( 'Cache-Control: no-cache, no-store, must-revalidate' );
    header( 'Pragma: no-cache' );
    header( 'Expires: 0' );
    /* Do same for admin_init to get dashboard to not cache */
} );

Testei as informações acima e parece funcionar, pelo menos no Chrome. Espero que isto ajude. Grande pergunta, eu me pergunto por que o WordPress não força a reautenticação em pelo menos as páginas do Painel.

Um bilhete criado para resolver o problema do administrador geral: enlace

    
por soulseekah 20.09.2012 / 11:21
0

O Wordpress não usa armazenamento de sessão do lado do servidor - somente cookies (armazenamento de sessão do lado do cliente).

E você não tem chance de acessar a história do navegador da Web ...

Desabilitar o cache (como dito acima) parece promissor - mas precisa de mais recursos, com certeza.

Não faria isso - simplesmente porque a velocidade da página sofreria com certeza.

    
por Martin Zeitler 26.09.2012 / 07:37

Tags