Proteger seu site WordPress contra hackers é uma prioridade máxima. Uma maneira eficaz de aumentar a segurança em nossos sites é desativar a execução do PHP em determinadas pastas.
Às vezes, os hackers tentam fazer upload de arquivos nocivos escritos em código PHP. Se esses arquivos puderem ser executados, eles podem comprometer a segurança do seu site.
Ao não permitir que o código PHP seja executado em determinados diretórios, você pode impedir que esses arquivos nocivos causem danos, mesmo que sejam carregados em seu servidor.
Este artigo mostrará a você como desativar a execução do PHP no WordPress. Explicaremos como usar o arquivo .htaccess para ativar essa medida de segurança e proteger seu site contra possíveis ataques.
Por que desativar a execução de PHP em determinados diretórios do WordPress?
Por padrão, o WordPress torna certos diretórios graváveis para que você e outros usuários autorizados em seu site possam carregar facilmente temas, plug-ins, imagens e vídeos em seu site.
No entanto, esse recurso pode ser abusado se cair em mãos erradas, como a de hackers que podem usá-lo para carregar arquivos de acesso backdoor ou malware em seu site WordPress.
Esses arquivos maliciosos geralmente são disfarçados de arquivos principais do WordPress. Em sua maioria, são escritos em PHP e podem ser executados em segundo plano para obter acesso total a todos os aspectos do seu site.
Parece assustador, não é?
Não se preocupe. Há uma solução fácil para isso. Basta desativar a execução do PHP em determinados diretórios onde você não precisa dele. Ao fazer isso, nenhum arquivo PHP será executado dentro desses diretórios.
Vamos dar uma olhada em como melhorar a segurança do WordPress desativando a execução do PHP usando o arquivo .htaccess.
Desativação da execução de PHP em determinados diretórios do WordPress usando o arquivo .htaccess
A maioria dos sites WordPress tem um arquivo .htaccess na pasta raiz.
Esse poderoso arquivo de configuração é usado para proteger a área de administração com senha, desativar a navegação no diretório, gerar uma estrutura de URL amigável para SEO e muito mais.
Por padrão, o arquivo .htaccess está localizado na pasta raiz do seu site WordPress, mas você também pode criar e usar arquivos .htaccess adicionais dentro dos diretórios internos do WordPress.
Para proteger seu site contra arquivos de acesso backdoor, você precisa criar um arquivo .htaccess e carregá-lo nos diretórios /wp-includes
e /wp-content/uploads
do seu site.
Basta criar um novo arquivo em seu computador usando um editor de texto, como o Notepad no Windows ou o TextEdit no Mac. Salve o arquivo como .htaccess e cole o seguinte trecho de código dentro dele:
<Files *.php>
deny from all
</Files>
Agora, salve o arquivo em seu computador.
Em seguida, você deve fazer upload desse arquivo para as pastas /wp-includes
e /wp-content/uploads
em seu servidor de hospedagem do WordPress.
Você pode fazer o upload usando um cliente FTP ou o aplicativo Gerenciador de arquivos no painel do cPanel da sua conta de hospedagem.
Quando o arquivo .htaccess com o código acima for adicionado, ele impedirá a execução de scripts PHP nesses diretórios.
Verificação de backdoors no WordPress usando a Sucuri
O uso desse truque .htaccess ajuda a reforçar a segurança do WordPress, mas não consertará um site WordPress que já tenha sido invadido.
Os backdoors são habilmente disfarçados e já podem estar escondidos à vista de todos.
Se você quiser verificar possíveis backdoors em seu site, precisará ativar a Sucuri em seu site.
O Sucuri é o melhor plug-in de segurança para WordPress do mercado. Ele examina seu site em busca de possíveis ameaças, códigos suspeitos, malware e vulnerabilidades.
Ele também bloqueia de forma eficaz a maioria das tentativas de invasão do seu site, adicionando um firewall entre o site e o tráfego suspeito.
E o mais importante: se o seu site WordPress for hackeado, ele o limpará para você. Para saber mais, você pode ler nossa análise da Sucuri, pois usamos o serviço deles há anos.
Você pode saber mais em nosso guia sobre como encontrar e corrigir backdoors em um site WordPress invadido.
Guias de especialistas sobre como melhorar a segurança do WordPress
Esperamos que este artigo tenha ajudado você a aprender como desativar a execução do PHP em determinados diretórios do WordPress para reforçar a segurança do seu site. Talvez você também queira aprender outras técnicas de segurança. Aqui estão alguns de nossos melhores guias sobre como melhorar a segurança do WordPress:
- O guia definitivo de segurança do WordPress (passo a passo)
- Como realizar uma auditoria de segurança do WordPress (lista de verificação completa)
- Como verificar se há código potencialmente malicioso em seu site WordPress
- Melhores scanners de segurança do WordPress para detectar malware e hackers
- Como adicionar a autenticação de dois fatores no WordPress (método gratuito)
- Como adicionar perguntas de segurança à tela de login do WordPress
- O que, por que e como são as chaves de segurança do WordPress
Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.
Jiří Vaněk
Thanks for these safety tips. I have created an htaccess file and will upload it to FTP. I have a website on my own server, so the question of security is entirely up to me. Thanks for the next step in making my WordPress a little more secure again.
Unarine Leo Netshifhefhe
I also have this alert on my Updraft plugin where backups are not happening can this be due to htaccess?
“Backup directory could not be created…
The folder exists, but your webserver does not have permission to write to it. You will need to consult with your web hosting provider to find out how to set permissions for a WordPress plugin to write to the directory. (wp-content/updraft)”
WPBeginner Support
That looks to be a file/folder permissions issue, you would want to reach out to your hosting provider and they can help, you can also take a look at our guide below:
https://www.wpbeginner.com/beginners-guide/how-to-fix-file-and-folder-permissions-error-in-wordpress/
Administrador
Brian Prom
FYI: you have a typo in your code snippet for the .htaccess snippet.
Using your code snippet as is (without the closing /) breaks image loading.
WPBeginner Support
Thank you for pointing that out, our code should be fixed
Administrador
Vitor Gonçlaves
I’ve found some .php files in the uploads folder created by plugins. Can I assume this won’t cause a problem, or do I have to analyse each plugin individually?
WPBeginner Support
If you reach out to your plugins they can let you know the specifics for those files.
Administrador
nirbo
Thanks for the information
WPBeginner Support
You’re welcome
Administrador
cliff denney
thank you very much
WPBeginner Support
You’re welcome
Administrador
Suman Samanta
Great writing! You have a flair for informational writing. Your content has impressed me beyond words. I have a lot of admiration for your writing. Thank you for all your valuable input on this topic.
WPBeginner Support
Thank you, glad you enjoy our writing
Administrador
Thato
Guys i think i have messed up my htaccess file, my website is completely not displaying images
WPBeginner Support
Hey Thato,
You can download your .htaccess file to your computer as a backup and then delete it from your website. Go to WordPress admin area Settings » Permalinks and click on the save changes button. This should regenerate your .htaccess file.
Administrador
Shawn Rebelo
Do not do wp-content.
Do wp-content/uploads.
And this:
order allow,deny
deny from all
May very on servers.
Hardik
Does it affect the uploads file to upload on webpages?
I found that after uploading this htaccess file to the folder many of images from many posts are not displaying.
Chuck Cochems
Yeah, denying access to php files in the includes directory breaks the site because including actually obeys .htaccess restrictions.
But the restriction on the uploads directory is very smart, and this should be there .BY DEFAULT in the uploads directory, and there’s no good reason for it not to be present.
Stan
What’s the method for IIS servers?
Thanks,
KOnnie
ZOMG! can’t you just disable write access to /wp-includes folder?
Why fight with consequences when you can prevent the cause?
Jonathan Hodgson
Wouldn’t this stop wordpresss being able to update the files in core updates?
Jeff Wigal
You can also put this in your Apache virtualhost, which will accomplish the same thing:
Order allow,deny
Deny from all
anton
how to implement this code if we have combination of lower case and upper case on file extention for example on.php on my website its work but it s not working if the file named with.PHp ,.PHP .PhP or combination of them,the backdoor script still executed
Thank you
Timothée Moulin
You can put this in your .htaccess file
Order Deny,Allow
Deny from All
Shams
Hi Syed,
Thanks for such an informative post and in fact it provides a great solution for saving WordPress from hackers.
Vladimir
Hi!
I followed all your instructions in this article, but Its not working…
Thanks
Aurélien Debord
A so useful post with such good and quick tips.
Thanks
Ramon
I created an .htaccess file in the wp-includes folder. Site looked oke but my WYSIWYG editor in the admin pages wasn’t working. Had to remove the .htaccess file again. (WP 3.9.1)
Wes
I also found my wp-includes folder full of php files and I can’t see how using that .htaccess file in there wouldn’t break something. I did use it in the uploads dir.
Editorial Staff
It does break it sometimes (depending on the plugin you are using), but not all the time.
Administrador
Red
forgive my bad english…
i followed all your instructions in this article, but when i go my dashboard to add a newpost, my post section was messed up. … i suspect the .htaccess was the problem.
when i deleted it, the post was fine.
Editorial Staff
Which directory did you upload the .htaccess file that caused this issue?
Administrador
Chris
I added the .htaccess file to my wp-includes and didn’t have any problems. Thanks a lot of the tips.
Brad
I tried this in my /wp-includes/ directory, which is full of php files. Of course I could no longer access the site. Did you really mean to include the includes directory for use with the .htaccess file?
Did you maybe mean /wp-includes/images ?
Editorial Staff
Nope. We meant /wp-includes/ folder. We have this on our wp-includes folder. If for some reason it is breaking your site, then delete the .htaccess file from your wp-includes folder.
Administrador
Brad
Strange, my wp-includes folder has over 90 php files in it. And it does break the site. I took it back out immediately.
But I did put it in the /wp-content/uploads/ folder and its works just fine there. Thanks for responding
Alfred
Putting an htaccess file denying access to php files in a directory full of php files does seem rather odd. I assume it’s because these files are normally only included, not executed directly. If that’s true, wouldn’t it be better to just deny access to the entire directory?