O arquivo .htaccess em sua instalação do WordPress é um poderoso arquivo de configuração que você pode usar para substituir as configurações em seu servidor web para melhorar a segurança e o desempenho do seu site.
Curto para “Acesso ao Hipertexto”, você pode editar o arquivo e com os comandos certos, você pode ativar / desativar funcionalidades extras e recursos para proteger seu site contra spammers, hackers e outras ameaças.
Alguns desses recursos incluem redirecionamentos básicos, bloqueando o acesso externo a arquivos específicos ou funções mais avançadas, como proteção de senha de conteúdo ou impedindo o hotlinking de imagem.
Então, vamos analisar detalhadamente como você pode manipular seu arquivo .htaccess para aumentar sua segurança.
O que é .htaccess Tenho que fazer com isso?
O arquivo .htaccess está localizado na raiz do seu site (ou rede Multisite). O período em frente ao nome do arquivo significa que é um arquivo oculto e você não poderá vê-lo ao navegar seus arquivos, a menos que você mostre todos os arquivos ocultos em seu computador.
No WordPress, o arquivo é usado para facilitar belos permalinks e é criado automaticamente quando esta opção está habilitada. Há muito mais com o que você pode fazer. No entanto, htaccess , como a adição de 301 redirecionamentos ou incluindo regras para bloquear visitantes não autorizados.
Se você já está bem versado no arquivo .htaccess e está pronto para fazer algumas mudanças, vá em frente e salte para ver a lista, ( não se esqueça de fazer backup de seu site primeiro! )
Eu tenho pena do tolo que não faz backup
O . O arquivo htaccess pode ser um programa fino para trabalhar porque um único erro de sintaxe pode quebrar seu site inteiro. Dito isto, se você estiver preparado, este tipo de cenário pior não precisa soletrar uma sentença de morte para seu site. de fato, longe disso.
Fazer backup de seu site antes de fazer qualquer alteração pode atuar como um fail safe para que você possa restaurar rapidamente seus arquivos e estar no seu caminho como se nada acontecesse. Bem, bem perto disso, de qualquer maneira.
O mínimo absoluto que você deve fazer é baixar uma cópia do seu arquivo .htaccess em seu computador para que você possa substituí -lo se um erro for feito. Você pode fazer o download de uma cópia do seu arquivo .htaccess no cPanel, indo para Arquivos> Gerenciador de arquivos depois de efetuar o login. Se você for solicitado com um pop-up, selecione a caixa de seleção Mostrar arquivos ocultos e clique em Ir.
Alternativamente, você pode clicar em Configurações no canto superior direito do Gerenciador de Arquivos e clique no Mostrar arquivos ocultos caixa de seleção, em seguida, clique no Salvar botão.
Você deve poder ir para a raiz do seu site agora e encontrar o. Arquivo htaccess . Clique nele uma vez na lista e, em seguida, clique no botão Download na navegação. Guarde-o no seu computador. Se você precisar restaurá-lo, você pode clicar no botão Carregar no topo da página.
Selecione a arquivos existentes Substituir caixa de seleção, em seguida, clique no Selecione Arquivo botão para procurar e abrir o backup do seu .htaccess arquivo.
Depois de abrir o arquivo, ele deve carregar e você pode clicar no link Voltar na parte inferior da página para retornar ao seu Gerenciador de arquivos . Uma vez feito isso, significa que seu arquivo .htaccess foi restaurado .
Passando por mudanças
Criando um arquivo .htaccess
Dependendo da sua instalação, você pode não ter um arquivo .htaccess , então antes de pensar em editá-lo, talvez seja necessário criar um. Você pode usar o seu editor de texto favorito para criar um ou fazê-lo diretamente no cPanel.
Crie e faça o upload de um novo arquivo e nomeie-o. Htaccess , ou clique no botão Arquivo no canto superior esquerdo do Gerenciador de arquivos no cPanel para criar um arquivo em branco chamado .htaccess .
Se o seu servidor não permitir que você faça isso, crie um arquivo chamado htaccess.txt em vez disso, então renomeie o arquivo para .htaccess, uma vez que ele é carregado em seu site.
Uma vez que todas as instalações do WordPress possuem bonecos permalinks definidos de forma padrão desde a versão 4.2, é melhor compartilhar o erro de cautela e incluir o código padrão para arquivos .htaccess nas versões mais recentes do WordPress em vez de criar um arquivo em branco.
Aqui está o código padrão que você deve incluir para instalações únicas do WordPress:
# BEGIN WordPress | |
< IfModule mod_rewrite.c> | |
RewriteEngine On | |
RewriteBase / | |
RewriteRule ^ index \ .php $ – [L] | |
RewriteCond % {REQUEST_FILENAME} ! -f | |
RewriteCond % {REQUEST_FILENAME} ! -d | |
RewriteRule . /index.php [L] | |
</ IfModule > | |
# END WordPress |
Para redes Multisite instaladas com subdiretórios usando a versão 3.5 ou superior, use o seguinte código em vez disso:
RewriteEngine On | |
RewriteBase / | |
RewriteRule ^ index \ .php $ – [L] | |
# Adicionar uma barra diagonal para / wp-admin | |
RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Wp-admin $ $ 1wp-admin / [R = 301, L] | |
RewriteCond % {REQUEST_FILENAME} -f [OR] | |
RewriteCond % {REQUEST_FILENAME} -d | |
RewriteRule ^ – [L] | |
RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? (Wp- (conteúdo | admin | inclui). *) $ 2 [L] | |
RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? (. * \. Php) $ $ 2 [L] | |
RewriteRule . Index.php [L] |
Se o seu Multisite estiver instalado com subdomínios e a versão que você está usando é 3.5 ou superior, use o código abaixo em vez das opções acima:
RewriteEngine On | |
RewriteBase / | |
RewriteRule ^ index \ .php $ – [L] | |
# Adicionar uma barra diagonal para / wp-admin | |
RewriteRule ^ wp-admin $ wp-admin / [R = 301, L] | |
RewriteCond % {REQUEST_FILENAME} -f [OR] | |
RewriteCond % {REQUEST_FILENAME} -d | |
RewriteRule ^ – [L] | |
RewriteRule ^ (wp- (content | admin | includes). *) $ 1 [L] | |
RewriteRule ^ (. * \. Php) $ $ 1 [L] | |
RewriteRule . Index.php [L] |
Para todas as outras versões do WordPress, confira o do WordPress Codex.htaccess página para obter detalhes sobre o código que você deve incluir em seu arquivo.
Quando você está criando um novo. O arquivo htaccess , é importante que você defina uma permissão de arquivo de 644 para protegê-lo de possíveis ataques. Para obter detalhes sobre como fazer isso, confira uma de nossas outras
Onde adicionar suas mudanças
Quando você está editando seu arquivo, é importante observar que as linhas que começam com uma hashtag são comentários e não estão incluídas naregra .htaccess . Quando você está adicionando regras, é crucial que você as inclua acima ou abaixo da regra padrão do WordPress explicada acima.
Você não deve adicionar ou editar nada entre as linhas # BEGIN WordPress
e # END WordPress
. Para as redes Multisite, o mesmo princípio se aplica, embora não haja nenhum comentário no início e termine como existem para instalações únicas.
Se você fizesse alguma mudança, é provável que ele seja substituído, então é melhor ficar sem o seu caminho e deixar o WordPress fazer o que é.
De um modo geral, adicionar regras abaixo das linhas padrão do WordPress mantém as coisas mais organizadas e adiciona um pouco de clareza quanto ao que suas edições são opostas ao código do WordPress. Também pode ser útil adicionar seus próprios comentários a qualquer adição que você faça para organizar ainda mais seu arquivo .htaccess .
No final do dia, depende de você e do que funcionaria melhor para suas necessidades.
Há também um acessório .htaccess para o conversor Nginx que você pode usar para ajustar as dicas mais tarde no artigo para usar com – você adivinhou – Nginx.
Editando seu arquivo .htaccess
Há muitas maneiras pelas quais você pode escolher editar seu arquivo .htaccess e um deles é fazê-lo diretamente no cPanel. A maioria das pessoas achou que esse é o método mais fácil, mas não o impedirei de usar o método que é o seu favorito.
Não importa qual método você escolher, pode ser útil notar que você atualizando seu site depois de salvar uma edição em seu arquivo permitirá que você verifique se suas edições quebram seu site. Se o fizerem, você pode restaurar imediatamente o arquivo e tentar novamente. Se tudo funcionar como deveria, então você é bom para ir e você pode continuar fazendo edições.
Depois de iniciar sessão no cPanel, vá para Arquivos> Gerenciador de arquivos e escolha mostrar arquivos ocultos conforme descrito anteriormente. Vá para a raiz do seu site e clique uma vez no seu arquivo .htaccess listado. Clique em Editar na navegação no topo da página para fazer suas alterações.
Não esqueça de clicar em Salvar antes de sair para que suas alterações não sejam perdidas.
Você também pode escolher editar arquivos usando FTP. Você pode encontrar os detalhes sobre como fazer isso, verificando como usar o FTP corretamente com o WordPress .
Você também pode optar por usar SSH para fazer mudanças também. Você pode verificar um Guia Rápido do Terminal e da Linha de Comando para o WordPress para obter detalhes sobre como usar um cliente SSH.
Os comandos SSH não são os mesmos para todos os tipos de servidores, então consulte a documentação do seu tipo de servidor para os comandos que você precisa usar.
Agora você está pronto para apertar a segurança do seu site com as dicas abaixo. Vamos lá.
1. Protegendo arquivos importantes
Uma das melhores edições que você pode fazer é proteger seu arquivo .htaccess, juntamente com seus logs de erro, arquivos wp-config.php e php.ini. Depois de fazer a seguinte alteração, as tentativas de acessar esses arquivos são negadas.
< FilesMatch “^. * (Error_log | wp-config \ .php | php.ini | \. [HH] [tT] [aApP]. *) $”> | |
Pedido negar, permitir | |
Negar de todos | |
</ FilesMatch > |
Certifique-se de verificar seus arquivos e ver se você tem um nomeado php.ini porque você não pode. Em vez disso, você pode ter um chamado php5.ini . Se for esse o caso, substitua php.ini
– php5.ini
o pela regra acima.
2. Restringir acesso ao administrador
Você também pode restringir o acesso ao painel de administração e à página de login adicionando as regras abaixo se você usar um endereço de IP estático:
ErrorDocumento 401 /path-to-your-site/index.php?error=404 | |
ErrorDocumento 403 /path-to-your-site/index.php?error=404 | |
< IfModule mod_rewrite.c> | |
RewriteEngine on | |
RewriteCond % {REQUEST_URI} ^ (. *)? Wp-login \ .php (. *) $ [OU] | |
RewriteCond % {REQUEST_URI} ^ (. *)? Wp-admin $ | |
RewriteCond % {REMOTE_ADDR} ! ^ Endereço IP One $ | |
RewriteCond % {REMOTE_ADDR} ! ^ Endereço IP Dois $ | |
RewriteCond % {REMOTE_ADDR} ! ^ Endereço IP Três $ | |
RewriteRule ^ (. *) $ – [R = 403, L] | |
</ IfModule > |
As duas primeiras linhas redirecionam endereços IP não autorizados para a página de erro 404. Isso também ajuda você a resolver todos os loops de redirecionamento para que o seu site não pareça estar baixo. Apenas certifique-se de editar ambas as instâncias do /path-to-your-site/
caminho real do seu site.
Além disso, substitua e IP Address One
, com os endereços IP reais, você deseja acessar essas páginas. Se você quiser apenas adicionar um endereço, omita as linhas nove e 10. Você também pode repetir a linha 10 quantas vezes quiser e substituir cada umaIP Address Two
IP Address Three
Você também pode repetir a linha 10 quantas vezes IP Address Three
quiser e substituir cada um com o endereço de IP real que deseja listar.
Se você ou algum de seus outros usuários tiverem endereços IP dinâmicos, uma rede Multisite ou vários usuários em sua rede que precisam fazer o login, você pode usar a seguinte regra em vez disso:
ErrorDocumento 401 /path-to-your-site/index.php?error=404 | |
ErrorDocumento 403 /path-to-your-site/index.php?error=404 | |
< IfModule mod_rewrite.c> | |
RewriteEngine on | |
RewriteCond % {REQUEST_METHOD} POST | |
RewriteCond % {HTTP_REFERER} ! ^ Http: // (. *)? Your-site.com [NC] | |
RewriteCond % {REQUEST_URI} ^ (. *)? Wp-login \ .php (. *) $ [OU] | |
RewriteCond % {REQUEST_URI} ^ (. *)? Wp-admin $ | |
RewriteRule ^ (. *) $ – [F] | |
</ IfModule > |
Não se esqueça de mudar as /path-to-your-site/
linhas um e dois para o caminho real para o seu site, bem como mudar your-site.com
com seu domínio real.
Muitos hackers usam bots para tentar acessar o painel de administração ou fazer logon externamente. Ao adicionar isso ao seu arquivo .htaccess , você está apenas deixando as pessoas que inserem manualmente seu site na barra de endereços do navegador para ter acesso a essas páginas.
Embora não bloqueie os hackers que tentam adivinhar manualmente os detalhes de login de seus usuários, na maioria dos casos, ele ainda faz uma grande diferença e reduz significativamente a quantidade de ataques de força bruta que você recebe.
3. Prevenir a Navegação de Diretórios
É possível que os visitantes vejam uma lista dos diretórios do seu site no front-end se eles entrarem no seu domínio e depois um diretório na barra de endereço do navegador. Uma vez que o WordPress possui uma estrutura de arquivo definida, nada está impedindo alguém de visitar o seu site -site.com/wp-content-uploads/ e ver uma lista de sua pasta e arquivos.
Isso definitivamente não é o que você quer porque é muito mais fácil para um hacker invadir um arquivo importante em seu site se eles literalmente podem ver o arquivo de destino em vista e não precisam adivinhar onde o arquivo está localizado.
É o equivalente a esconder uma chave sobressalente em seu lugar em um lugar super inteligente e secreto, mas depois publicar uma nota diretamente na sua porta, deixando todos os que visitam saber onde sua chave sobressalente está escondida.
Adicionando esta linha ao seu. O arquivo htaccess impede a navegação de diretórios para que os hackers tenham um tempo mais difícil de descobrir.
Opções All -Indexes |
4. Restringir acesso a arquivos PHP
Da mesma forma, fornecer acesso direto aos seus arquivos PHP é um grande não-não. Quanto mais difícil você conseguir que os hackers possam encontrar seus arquivos importantes, melhor e, dado que os arquivos PHP podem ser usados para injetar códigos maliciosos para infectar ainda mais o seu site, é incrivelmente importante proteger seus arquivos PHP.
Você pode adicionar as seguintes linhas do Acunetix para bloquear o acesso direto ao seu plugin e arquivos PHP do tema de usuários não autorizados:
RewriteCond % {REQUEST_URI} ! ^ / Wp -content / plugins / file / to / exclude \ .php | |
RewriteCond % {REQUEST_URI} ! ^ / Wp -content / plugins / directory / to / exclude / | |
RewriteRule wp-content / plugins / (. * \. Php) $ – [R = 404, L] | |
RewriteCond % {REQUEST_URI} ! ^ / Wp -content / themes / file / to / excluir \ .php | |
RewriteCond % {REQUEST_URI} ! ^ / Wp -content / themes / directory / to / exclude / | |
RewriteRule wp-content / themes / (. * \. Php) $ – [R = 404, L] |
SEGURANÇA
5. Restringir a execução do arquivo PHP
Enquanto estamos no assunto, você também pode evitar a execução não autorizada de arquivos PHP, então, no caso de um hack entrar em seu site, eles não poderão carregar seu próprio arquivo PHP com código mal-intencionado e tê-lo Na verdade, trabalho.
Isso significa que você pode impedir que as façanhas do backdoor realmente funcionem . Enquanto você ainda precisa encontrar e remover o arquivo, quanto mais obstáculos você fizer para um hacker, menos provável é que seu site possa ser infectado além do reparo.
Como a maioria dos hackers carrega backdoors em seu / wp-content / uploads / folder, bloqueando a execução de qualquer arquivo PHP, pode haver uma grande ajuda.
Adicione o código abaixo para restringir a execução de arquivos PHP adicionados à pasta uploads:
< Diretório “/ var / www / wp-content / uploads /”> | |
< Arquivos “* .php”> | |
Pedido Negar , Permitir | |
Negar de todos | |
</ Files > | |
</ Directory > |
6. Proteja seu site contra injeções de script
Você está em um rolo sério agora, então por que também não impede injeções de código malicioso em seus arquivos PHP? WP Recipes publicou uma maneira de evitar injeções de script .
Muitos hackers tentam mudar as variáveis WordPress GLOBALS e _REQUEST na tentativa de injetar código malicioso. Você pode adicionar o seguinte ao seu. Arquivo htaccess para evitar que essa alteração seja aceita:
Opções + FollowSymLinks | |
RewriteEngine On | |
RewriteCond % {QUERY_STRING} (<| % 3C). * Script. * (> | % 3E) [NC, OR] | |
RewriteCond % {QUERY_STRING} GLOBALS (= | [| % [0-9A-Z] {0,2}) [OR] | |
RewriteCond % {QUERY_STRING} _REQUEST (= | [| % [0-9A-Z] {0,2}) | |
RewriteRule ^ (. *) $ Index.php [F, L] |
7. Protegendo o diretório wp-includes
Seu diretório wp-includes é o lar de muitos de seus arquivos importantes. Ao bloquear todo o acesso não autorizado a ele, você pode proteger esses arquivos importantes de serem adulterados por hackers.
WP Explorer tem uma ótima adição para incluir para evitar que hackers acessem sua pasta wp-includes:
< IfModule mod_rewrite.c> | |
RewriteEngine On | |
RewriteBase / | |
RewriteRule ^ wp-admin / includes / – [F, L] | |
RewriteRule ! ^ Wp -includes / – [S = 3] | |
RewriteRule ^ wp-includes / [^ /] + \. Php $ – [F, L] | |
RewriteRule ^ wp-includes / js / tinymce / langs /.+ \ php – [F, L] | |
RewriteRule ^ wp-includes / theme-compat / – [F, L] | |
</ IfModule > |
8. Prevenção da enumeração do nome de usuário
Quando um visitante entra em sua barra de endereços no seu site , eles são direcionados para a página do autor que possui uma ID de usuário de um. A página do autor inclui o nome de usuário real associado ao ID do usuário.
O visitante facilmente conseguirá obter todos os nomes de usuários de todos os usuários do seu site se eles tiverem posts associados à sua conta. Esse processo é chamado de enumeração de nome de usuário.
Se um hacker é capaz de obter facilmente o seu nome de usuário, é uma coisa menos que eles precisam adivinhar. Na verdade, o único outro detalhe que eles precisam adivinhar é sua senha.
Embora o conhecimento do nome de usuário associado a uma conta não inclua muito valor para um hacker se o usuário usar uma senha forte, ainda pode ser benéfico para evitar a enumeração do nome de usuário, uma vez que os obstáculos que você faz para um hacker são menos prováveis É que eles realmente podem se infiltrar em seu site.
Veja como você pode evitar a enumeração de nome de usuário adicionando o seguinte ao seu arquivo .htaccess :
RewriteCond % {QUERY_STRING} autor = d | |
RewriteRule ^ /? [L, R = 301] |
9. Exigir SSL
Use o código abaixo para forçar o uso de um certificado SSL, a menos que o nome de domínio (FQDN) completo completo listado na linha três seja digitado:
SSLOptions + StrictRequire | |
SSLRequireSSL | |
SSLRequire % {HTTP_HOST} eq “ www.you-site.com “ | |
ErrorDocumento 403 https://www.your-site.com |
Apenas não esqueça de substituir www.your-site.com
nas linhas três e quatro com seu nome de domínio real.
Também vale a pena notar que você pode verificar nossa publicação Como usar SSL e HTTPS com o WordPress para obter mais detalhes sobre como você pode forçar o uso de SSL para seu site.
10. Impedir a Imagem Hot Linking
Quando um visitante pega o URL de uma das suas imagens e as carrega em seu site em vez de carregar a imagem para o servidor deles, eles estão roubando sua largura de banda. Também é chamado de hot linking.
Para evitar que isso aconteça, adicione isso ao seu arquivo .htaccess:
RewriteEngine On RewriteCond % {HTTP_REFERER}! ^ $ RewriteCond % {HTTP_REFERER} | |
! ^ Http: // (www \.)? Your-site.com /.*$ [NC] RewriteRule \. (Gif | jpg) $ | |
Http://www.your-site.com/hotlink.gif [R, L] |
Não se esqueça de substituir your-site.com
pelo seu domínio real na linha dois e substituir http://www.your-site.com/hotlink.gif
na linha três pelo URL atual da imagem que deseja proteger.
Empacotando
Com estas dicas e regras, você pode ajudar a proteger seu site ou rede da WordPress e bloquear os hackers todas as chances de você obter. Não se esqueça, porém, de que essas mudanças são apenas um passo para reforçar a segurança em seu site – sempre há mais que você pode e deve fazer.
Você editou seu arquivo .htaccess para aumentar sua segurança? Quais são as suas mudanças favoritas no seu arquivo .htaccess que você fez? Quais outras ferramentas você prefere usar para aumentar a segurança do seu site ou da rede? Compartilhe sua experiência nos comentários abaixo.