Uma medida básica para melhorar a segurança do WordPress é alterar a URL para acessar o painel de administração.
Por padrão, é o mesmo para todas as instalações e, portanto, o principal objetivo da maioria dos ataques em nosso site. Vamos ver como realizar esta tarefa!
Considerações preliminares
À primeira vista, alterar o URL de acesso parece uma tarefa simples. Para acessar através de um URL de nossa escolha, basta criar o redirecionamento apropriado. Mas isso não resolve o problema.
Ainda precisamos bloquear o acesso através de / wp-admin e wp-login.php, ou não teremos feito nada, exceto complicar nossas vidas.
Trata-se de alterar a funcionalidade básica, sem tocar no núcleo do WordPress.
Se o fizermos, na melhor das hipóteses, as atualizações serão complicadas e podemos ter problemas com a operação do nosso site.
Não é fácil, mas é possível fazer isso.
Ocultar wp-admin com um plugin
Embora eu evite usar plugins o máximo possível, acho que estamos enfrentando uma exceção que confirma a regra. Nesta ocasião, recomendo usar um plug-in com eficácia comprovada.
Se tivermos uma solução de segurança como AIO WP Security, basta acessar a opção correspondente na seção de força bruta e escrever a slug desejada, por exemplo somente-para-mim, ative-o e salve a configuração.
AIO vai cuidar de tudo para nós. A partir desse momento, entraremos no novo URL e / wp-admin e wp-login.php não será acessível a partir da Internet
Se nossa solução de segurança para WordPress não incorporar essa funcionalidade, podemos usar um plug-in específico, como WPS Hide Login.
Eu não tentei, mas vi várias análises que o recomendam. Tendo em conta as instalações e avaliações ativas, ele parece um bom candidato.
Ocultar wp-admin usando o código
Esta é uma opção que nos dará o mesmo resultado, sem instalar um plugin. Estes são os passos a seguir
1 Adicionamos a lesma de administração a wp-config.php
define('WP_ADMIN_DIR', 'solo-para-mi'); define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);
2) No funções php do nosso tema filho, adicionaremos as seguintes funções:
//sustituye wp-admin por el nuevo slug add_filter('site_url', 'wpadmin_filter', 10, 3); function wpadmin_filter( $url, $path, $orig_scheme ) { $old = array( "/(wp-admin)/"); $admin_dir = WP_ADMIN_DIR; $new = array($admin_dir); return preg_replace( $old, $new, $url, 1); } //bloqueamos acceso a wp-admin con 404 add_action('login_form','redirect_wp_admin'); function redirect_wp_admin(){ $redirect_to = $_SERVER['REQUEST_URI']; if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){ $redirect_to = $_REQUEST['redirect_to']; $check_wp_admin = stristr($redirect_to, 'wp-admin'); if($check_wp_admin){wp_safe_redirect( '404.php' );} } } //bloqueamos wp-login.php con 404 add_action( 'init', 'force_404', 1 ); function force_404() { $requested_uri = $_SERVER["REQUEST_URI"]; if (strpos( $requested_uri, '/wp-login.php') !== false ) { status_header( 404 ); nocache_headers(); include( get_query_template( '404' ) ); die(); } }
3) Vamos modificar nossa .htaccess adicionando as linhas
RewriteRule ^solo-para-mi/(.*) wp-admin/$1?%{QUERY_STRING} [L]
Seguindo estas etapas, apenas precisamos substituir só para mim pela lesma que queremos e com isso teremos alterado o URL de acesso ao nosso painel de administração.
A solução não é minha, mas atende aos requisitos e é o que eu mais gostei.
Ocultar wp-admin por senha
Esta solução não usa código PHP e, embora não bloqueie o acesso à área de administração, solicita uma senha adicional com a qual temos uma camada extra de segurança no WordPress.
Faremos o seguinte:
1 Nós nos conectamos ao console do servidor e criamos um arquivo de senha
sudo apt-get install apache2-utils sudo htpasswd -c /ruta/hasta/archivo/.htpasswd nombre-de-usuario
2) Vamos criar um arquivo .htaccess com o seguinte conteúdo e enviá-lo para a pasta / wp-admin
AuthName "Acceso Restringido" AuthType Basic AuthUserFile /ruta/hasta/archivo/.htpasswd require valid-user <FilesMatch “\.(css|js|jpg|jpeg|gif|png)$”> Order Allow,Deny Allow from All Satisfy Any </FilesMatch> <Files admin-ajax.php> Order Allow,Deny Allow from All Satisfy Any </Files>
A partir desse momento, acesse a pasta wp-admin exigirá autenticação com o usuário e a senha definidos no ponto 1. É permitido o acesso gratuito aos arquivos auxiliares: css, js e imagens.
Também é permitido o acesso gratuito ao arquivo admin-ajax.php necessário para a funcionalidade AJAX no WordPress.
Por padrão, não ocultamos o URL, mas tornamos mais difícil para quem tenta ignorar a segurança do WordPress.
Configurações de cache
Só podemos impedir que a nova página de acesso seja armazenada em cache. Se nós usamos um plugin, podemos ter visto o aviso.
Como fazer isso depende do nosso plugin de cache. Se você usa o Cache Enabler, essa funcionalidade já é suportada.
Expressão regular /.*/só para mim/ impedirá que o URL que termina no novo slug seja armazenado em cache. Podemos aprender mais sobre expressões regulares e experimentar outras variantes aqui.
Conclusão
Podemos ter certeza de que a maioria das visitas ao wp-admin será maliciosa; portanto, o nível aceitável de paranóia é reforçar o máximo possível a segurança do WordPress.
Vimos várias maneiras de tornar os hackers um pouco mais difíceis. Minha recomendação é fazê-lo através de um plug-in, principalmente se a nossa solução de segurança o incorporar.
No entanto, independentemente da implementação que escolhermos, não vamos nos limitar a ela.
Devemos complementá-lo com outras medidas de segurança e, acima de tudo, fazer cópias de segurança regulares.