KakapoWP KakapoWP
Entrar Testar grátis
Centro de Ajuda/Security/Mudar o endereço de login: configurar, verificar, reverter

Mudar o endereço de login: configurar, verificar, reverter

Aplica-se a: Kakapo Security· 4 min de leitura

O que tem de estar certo antes

Por predefinição a função está desligada e nunca se liga sozinha. Três coisas impedem por completo a mudança do caminho — o interruptor fica então bloqueado e indica o motivo: (1) Na wp-config.php está o travão de emergência define( 'KWPSEC_LOGIN_SLUG_OFF', true );. (2) A instalação é uma rede Multisite; aí todos os sites partilham um único início de sessão e a mudança teria de acontecer em toda a rede. (3) As ligações permanentes estão em «Simples». Nesse caso um caminho como /gartentor não chega sequer ao PHP, o servidor web responde antes com 404. Muda em Definições › Ligações permanentes para outra estrutura antes de continuares.

Escolher um caminho

São permitidos 3 a 40 caracteres: letras minúsculas, algarismos, hífen e traço inferior. Sem barras, sem caracteres acentuados, sem ponto; as maiúsculas são convertidas em minúsculas. Ao guardar correm quatro verificações: os nomes das listas habituais de bots (login, wp-login, admin, wp-admin, anmelden, dashboard e semelhantes) são recusados, porque voltariam a ser descobertos em minutos. Se já existir na instalação do WordPress um ficheiro ou um diretório com esse nome, é recusado — o servidor web entregaria esse ficheiro antes de o PHP ser sequer consultado. As rotas reservadas como wp-json, feed, author, category, sitemap ou favicon estão bloqueadas. E se sob esse caminho já estiver um artigo ou uma página, é recusado, porque depois deixaria de estar acessível. Um caminho guardado ainda não vale — só produz efeito quando ligares adicionalmente a mudança do caminho.

Ligar: o que acontece automaticamente

Ao mudar o interruptor, a definição é guardada e o servidor faz em seguida dois pedidos HTTP reais contra a própria instalação: um ao endereço novo, outro ao antigo. Cada chamada tem 8 segundos de limite de tempo, não segue redirecionamentos e não envia cookies. Como prova de que respondeu mesmo a página de início de sessão, procura-se no texto devolvido por id="loginform" e name="log". Se o novo endereço responder com HTTP 404 e sem formulário de início de sessão, a alteração é imediatamente revertida e o estado anterior é reposto — no nginx falta nesse caso quase sempre a linha try_files, no Apache o .htaccess. Se a verificação passar, o plugin envia o novo endereço como mensagem de texto simples para o endereço de notificação indicado (em alternativa, para o e-mail do administrador); na mensagem consta também a linha do travão de emergência para a wp-config.php. A resposta diz sem rodeios se wp_mail() aceitou a mensagem — se não aceitou, aponta o endereço agora. É igualmente escrita uma entrada no Registo de atividades.

O que muda no funcionamento

No novo caminho é incluído o ficheiro original wp-login.php, e não uma imitação — as atualizações de segurança do WordPress produzem aí efeito de imediato. Para quem não tem sessão iniciada, /wp-login.php comporta-se como qualquer endereço que não existe: o pedido é reescrito para um caminho sem conteúdo e apresentado normalmente pelo tema como 404, sem mensagem de erro própria — uma mensagem própria seria a pista de que aqui há algo escondido. Quem tem sessão iniciada continua a passar; isso é intencional. Se alguém sem sessão abrir /wp-admin/, segue por 302 para a página inicial em vez de ir para o início de sessão, caso contrário o novo endereço apareceria no cabeçalho Location. admin-ajax.php, admin-post.php, load-styles.php e load-scripts.php continuam acessíveis, para que formulários de contacto, carrinhos de compras e avaliações continuem a funcionar. Todos os endereços que o WordPress gera através de site_url(), network_site_url() ou wp_redirect() — wp_login_url(), wp_logout_url(), wp_lostpassword_url(), o atributo action do formulário —, apontam automaticamente para o novo caminho.

Se te trancares fora ou algo emperrar

Primeiro caminho: enquanto existir no teu navegador um cookie de início de sessão válido, chegas a /wp-login.php e /wp-admin/ como sempre. Segundo caminho: o endereço está no e-mail da mudança. Terceiro caminho: escreve define( 'KWPSEC_LOGIN_SLUG_OFF', true ); na wp-config.php — assim volta imediatamente a valer wp-login.php, e o interruptor fica bloqueado até removeres essa linha. Na administração há além disso dois botões: um que repete a chamada de verificação e apresenta o código HTTP, o tempo de resposta e o estado do endereço antigo, e outro que envia de novo o e-mail de acesso. Se a chamada de verificação comunicar um erro de rede em vez de um código HTTP, é normalmente o loopback que está bloqueado no alojamento — isso não significa que o endereço não funcione; abre-o tu próprio uma vez. Se uma ligação de outro plugin continuar a apontar para wp-login.php, é porque está fixa no código e não passa por site_url(); só pode ser reescrito aquilo que passa por estes filtros. Voltar atrás é possível a qualquer momento através do mesmo interruptor.

Este artigo foi útil?