<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wordpress seguro &#8211; Turbosite &#8211; Blog</title>
	<atom:link href="https://www.turbosite.com.br/blog/tag/wordpress-seguro/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.turbosite.com.br/blog</link>
	<description></description>
	<lastBuildDate>Mon, 08 Dec 2014 12:18:25 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://www.turbosite.com.br/blog/wp-content/uploads/2026/09/cropped-logo_turbo_vermelha-32x32.png</url>
	<title>wordpress seguro &#8211; Turbosite &#8211; Blog</title>
	<link>https://www.turbosite.com.br/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Deixando seu WordPress mais Seguro</title>
		<link>https://www.turbosite.com.br/blog/deixando-seu-wordpress-mais-seguro/</link>
		
		<dc:creator><![CDATA[turboajuda]]></dc:creator>
		<pubDate>Mon, 08 Dec 2014 12:18:25 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[proteger wordpress]]></category>
		<category><![CDATA[segurança wordpress]]></category>
		<category><![CDATA[wordpress seguro]]></category>
		<guid isPermaLink="false">http://blog.turbosite.com.br/?p=3892</guid>

					<description><![CDATA[Dica de como aumentar a segurança do seu site ou blog feito em Wordpress. Esta postagem aborda 9 itens que podem fazer a diferença entre não virar estatística de sites hackeados.]]></description>
										<content:encoded><![CDATA[<p>Em 2014 o número de utilizadores do WordPress só vem aumentando, ele já ocupa 60,9% do mercado de sites com gerenciamento de conteúdo. De pequeno a grandes portais todos devem se preocupar com a segurança de seus sites e hoje, vamos compartilhar uma dica que pode fazer a o seu site não ser &#8220;<em>mais um blog em WordPress&#8221;.</em></p>
<p>De acordo com o relatório da <a href="http://w3techs.com/technologies/details/cm-wordpress/all/all">w3techs.com</a>, todos os sites com gerenciamento de conteúdo, 60,9% estão em WordPress.</p>
<blockquote><p><b>WordPress is used by 60.9%</b> of all the websites whose content management system we know. This is 23.2% of all websites.</p></blockquote>
<p>&nbsp;</p>
<p>A dica postada hoje foi escrita pelo <a href="http://tiagohillebrandt.eti.br/dicas-seguranca-wordpress.html">Tiago Hillebrandt</a>. Vale a pena a leitura.</p>
<p>&nbsp;</p>
<p>Nos dias atuais, infelizmente a segurança não tem sido encarada da forma que deveria por muitos desenvolvedores, e até mesmo pelas empresas de hospedagem.</p>
<p>É muito comum encontrarmos instalações sendo invadidas pelo descuido em questões básicas de segurança, como permissões de arquivos ou <em>hashes</em> não atualizados no <em>wp-config.php</em>.</p>
<p>Com base nisso, resolvi publicar aqui um simples tutorial separado por etapas com algumas boas dicas de segurança focadas em <strong>WordPress</strong>.</p>
<p><img fetchpriority="high" decoding="async" class="size-full wp-image-1786 alignnone" src="http://tiagohillebrandt.eti.br/wp-content/uploads/2014/03/seguranca-wordpress.png" alt="Dicas de segurança para WordPress" width="600" height="180" /></p>
<p>&nbsp;</p>
<h3><span id="more-1609"></span>1. PHP</h3>
<p>Basicamente, é de suma importância manter as seguintes diretivas no seu <em>php.ini</em>:</p>
<pre class="lang:sh decode:true ">display_errors=Off
allow_url_fopen=Off
disable_functions=popen,exec,system,passthru,proc_open,shell_exec,highlight_file,escapeshellcmd,pcntl_exec</pre>
<p>Essas diretivas irão desabilitar algumas funções que podem representar risco para seu servidor.</p>
<p>Mas e se meu tema ou um dos meus <em>plugins</em> usar alguma dessas funções? Considere removê-lo ou substituí-lo!</p>
<p>Por exemplo, é comum ver <em>plugins</em> usando a função <em>exec()</em> para manipular imagens. Manipulação de imagens é um processo que em geral consome muitos recursos do servidor, e certamente vai acarretar na perda de performance em seu <em>site</em>. Assim, além de todas as questões de segurança envolvidas, temos mais um motivo para não utilizar esses <em>plugins</em>.</p>
<p>&nbsp;</p>
<h3>2. Servidor web</h3>
<p>A página <a title="Hardening WordPress" href="http://codex.wordpress.org/Hardening_WordPress#Securing_wp-includes">Hardening WordPress</a> no <a title="Codex" href="http://codex.wordpress.org/">Codex</a> recomenda a adição de algumas regras no servidor <em>web</em> para segurança do diretório <em>wp-includes</em> e do arquivo<em>wp-config.php</em>.</p>
<p>&nbsp;</p>
<h4>2.1. Nginx</h4>
<p>Se o seu servidor <em>web</em> for o <strong>Apache</strong>, ignore essa etapa.</p>
<p>Como as regras estão no formato <strong>Apache</strong>, efetuei a conversão delas para o formato <strong>Nginx</strong> manualmente.</p>
<p>Assim, você deverá editar o arquivo de configuração do seu site, geralmente disponível em <em>/etc/nginx/sites-available/</em>, e adicionar as seguintes linhas:</p>
<pre class="lang:php decode:true"># WordPress Hardening
if ($request_uri ~ ^/wp-admin/includes/) { return 403; }
if ($request_uri ~ ^/wp-includes/js/tinymce/langs/.+\.php$) { return 403; }
if ($request_uri ~ ^/wp-includes/theme-compat/) { return 403; }
if ($request_uri ~ ^/wp-config\.php$) { return 403; }</pre>
<p>&nbsp;</p>
<p>Além disso, a linha abaixo também deverá ser adicionada se você NÃO estiver rodando uma instalação <em>multisite</em> do <strong>WordPress</strong>:</p>
<pre class="lang:php decode:true">if ($request_uri ~ ^/wp-includes/[^/]+\.php$) { return 403; }
</pre>
<p>&nbsp;</p>
<p>Após adicionar as linhas, salve o arquivo, dê um <em>reload</em> no <strong>Nginx</strong> e <em>voilá.</em></p>
<p>&nbsp;</p>
<h4>2.2. Apache</h4>
<p>Se o seu servidor <em>web</em> for o <strong>Nginx</strong>, ignore essa etapa.</p>
<p>Você deverá editar o arquivo <em>.htaccess</em> do seu site e adicionar as seguintes instruções:</p>
<pre class="lang:php decode:true "># WordPress Hardening: wp-config.php
&lt;files wp-config.php&gt;
order allow,deny
deny from all
&lt;/files&gt;</pre>
<p>&nbsp;</p>
<pre class="lang:php decode:true "># Disables the access to htaccess file
&lt;files .htaccess&gt;
order allow,deny
deny from all
&lt;/files&gt;</pre>
<p>&nbsp;</p>
<pre class="lang:php decode:true "># WordPress Hardening: wp-includes
&lt;IfModule mod_rewrite.c&gt;
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]
&lt;/IfModule&gt;</pre>
<p>&nbsp;</p>
<p class="">Além disso, a linha abaixo também deverá ser adicionada dentro do bloco do <em>wp-includes</em> se você NÃO estiver rodando uma instalação <em>multisite</em> do <strong>WordPress</strong>:</p>
<pre class="lang:php decode:true">RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]</pre>
<p>&nbsp;</p>
<p>Feito isso, salve o arquivo e <em>voilà</em>, o <strong>Apache</strong> deverá carregar suas regras automaticamente.</p>
<p>&nbsp;</p>
<h3>3. MySQL</h3>
<p>Primeiramente, recomendaria adicionar a seguinte linha ao seu <em>my.cnf</em>:</p>
<pre class="lang:php decode:true ">bind-address=127.0.0.1</pre>
<p>&nbsp;</p>
<p>Feito isso, basta salvar o arquivo e reiniciar o <strong>MySQL</strong>. Com aquela linha, somente acessos vindouros do próprio servidor serão aceitos.</p>
<p>Em relação a base de dados, meu conselho seria criar um usuário dedicado por<em>site</em> rodando <strong>WordPress</strong>.</p>
<p>Para criar um novo usuário, basta executar os seguintes comandos SQL como <strong>root</strong> — substituindo <em>database</em> pelo nome da sua base de dados, <em>user</em> pelo nome de usuário e <em>password</em> pela senha desejada:</p>
<pre class="lang:php decode:true ">GRANT ALL PRIVILEGES ON database.* TO user@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;</pre>
<p>&nbsp;</p>
<p>Um bom site para gerar senhas é o <em><a title="Random Keygen Generator" href="http://randomkeygen.com/">Random Keygen</a></em>.</p>
<p>Depois disso, vá até o seu <em>wp-config.php</em> e edite as credenciais de acordo com o novo usuário que criou.</p>
<p>&nbsp;</p>
<h3>4. Permissões dos arquivos e diretórios</h3>
<p>É muito comum encontrarmos instalações <strong>WordPress</strong> com permissões atribuídas de maneira inadequada e potencialmente perigosas, principalmente se tratando de hospedagens compartilhadas (<em>shared hosting</em>).</p>
<p>O mais comum dos erros nessa etapa é a definição recursiva da permissão 777 para o diretório <em>wp-content/uploads/</em>. Fazendo uma pequena pesquisa é possível encontrar uma conhecida empresa de hospedagem aqui no Brasil recomendando o uso dessa permissão naquele diretório.</p>
<p>Para evitar dores de cabeça devido a permissões inapropriadas, basta executar três comandos no diretório onde seu <em>site</em> está instalado:</p>
<pre class="lang:sh decode:true"># find . -type d -exec chmod 755 {} \;
# find . -type f -exec chmod 644 {} \;
# chmod 400 wp-config.php</pre>
<p>&nbsp;</p>
<p>Assim, todos os diretórios terão permissão 755, e todos os arquivos 644, conforme recomendado pela página<strong> </strong><a title="Hardening WordPress: File Permissions" href="http://codex.wordpress.org/Hardening_WordPress#File_Permissions">Hardening WordPress</a> disponível no<a title="Codex" href="http://codex.wordpress.org/">Codex</a>. Além disso, adicionalmente seu <em>wp-config.php</em> terá permissões de somente leitura para o usuário <em>root</em>.</p>
<p>Na <a title="Synthesis, hospedagem especializada em WordPress" href="http://tiagohillebrandt.eti.br/out/synthesis"><strong>Synthesis</strong></a>, que oferece hospedagem especializada em <strong>WordPress</strong>, essas permissões já estão definidas por padrão na sua instalação!</p>
<p>Está usando uma hospedagem compartilhada e não tem acesso ao servidor para executar os comandos? Envie um e-mail para o suporte ténico da empresa solicitando para executarem estes comandos em sua instalação <strong>WordPress</strong>. Provavelmente eles não irão se opor, se tratando apenas de três simples comandos.</p>
<p>Dica: se a empresa não for capaz de rodar aqueles comandos por você, confie em mim, mude de hospedagem o mais rápido possível.</p>
<p>&nbsp;</p>
<h3>5.<em> Hashes</em> do <em>wp-config.php</em></h3>
<p>Possivelmente, navegando pelo <em>wp-config.php</em>, você já se deparou com as seguintes constantes:</p>
<pre class="lang:php decode:true">define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');</pre>
<p>&nbsp;</p>
<p>Daria para escrever um belo texto explicando essas constantes e como o <strong>WordPress</strong> lida com elas, mas vou simplificar para não fugirmos do foco do texto.</p>
<p>As constantes <em>AUTH_KEY</em>, <em>SECURE_AUTH_KEY</em>, <em>LOGGED_IN_KEY</em> e<em>NONCE_KEY</em> são responsáveis por garantir a criptografia dos <em>cookies</em> do usuário gerados pelo <strong>WordPress</strong>. O sistema de autenticação do <strong>WordPress</strong> é baseado nesses <em>cookies</em>.</p>
<p>Quer tirar a prova real? Autentique-se no <em>Dashboard,</em> edite o valor da constante<em>AUTH_KEY</em> no seu <em>wp-config.php </em>e dê um <em>refresh</em> na página recém-autenticada do <em>Dashboard</em>. Você será direcionado(a) para página de <em>log in</em> do <strong>WordPress</strong>.</p>
<p>Repare que para cada <em>KEY</em> há um <em>SALT</em> correspondente. As <em>KEYs</em> adicionam elementos aleatórios para a senha. Já os <em>SALTs</em> são usados para melhorar ainda mais o resultado gerado pelas <em>KEYs</em>.</p>
<p>Deixando a teoria de lado, para nos auxiliar o time do <strong>WordPress</strong> disponibilizou uma pequena função em sua API para gerar os valores das constantes automaticamente: <a href="https://api.wordpress.org/secret-key/1.1/salt/">https://api.wordpress.org/secret-key/1.1/salt/</a></p>
<p>Assim, basta acessar a página acima, copiar o conteúdo dela e substituir as atuais constantes KEYs e SALTs em seu <em>wp-config.php</em> com as geradas pela API.</p>
<p>&nbsp;</p>
<h3>6. Atualizações do WordPress</h3>
<p>É sempre importante manter seu <strong>WordPress</strong> atualizado.</p>
<p>As versões pontuais em geral trazem correções de <em>bugs</em> e pequenas modificações. Assim, é sempre uma boa prática configurar o <strong>WordPress</strong> para recebê-las automaticamente.</p>
<p>Como exemplo, cito a versão 3.8.1 do <strong>WordPress</strong>, que trouxe a <a title="WordPress 3.8.1 Maintenance Release" href="http://wordpress.org/news/2014/01/wordpress-3-8-1/">correção de 31 <em>bugs</em></a> existentes na versão 3.8.</p>
<p>Para ativar as atualizações automáticas das versões pontuais, adicione a seguinte linha ao seu <em>wp-config.php</em>:</p>
<pre class="lang:php decode:true">define('WP_AUTO_UPDATE_CORE', 'minor');</pre>
<p>&nbsp;</p>
<p class="lang:php decode:true ">Depois disso basta salvar o arquivo e fechá-lo.</p>
<p>&nbsp;</p>
<h3>7. WordPress, <em>plugins</em> e temas</h3>
<p>Por padrão, o <strong>WordPress</strong> permite editar arquivos PHP via <em>Dashboard</em>. Isso pode trazer grandes problemas se alguém que não deveria, de alguma forma, obtiver acesso ao <em>Dashboard</em>.</p>
<p>Assim, recomendo que desabilite o editor padrão do <strong>WordPress</strong> e edite seus arquivos somente via SFTP ou SSH. Para desabilitá-lo, basta adicionar a seguinte linha ao <em>wp-config.php</em>:</p>
<pre class="lang:php decode:true ">define('DISALLOW_FILE_EDIT', true);</pre>
<p>&nbsp;</p>
<p>Outro ponto importante: manter seus temas e <em>plugins</em> atualizados. As atualizações trazem correções de segurança e de demais <em>bugs</em>, bem como novas funcionalidades para o tema ou <em>plugin</em>.</p>
<p>Também é importante ter certeza que o <em>plugin</em> ou tema continua sendo suportado pelo(s) desenvolvedor(es), bem como verificar se ele é compatível com sua atual versão do <strong>WordPress</strong>.</p>
<p>Além disso, temas e <em>plugins</em> que não estão sendo usados devem ser removidos do seu <strong>WordPress</strong>, pois podem representar problemas de segurança, tendo em vista que continuam acessíveis mesmo quando desativados no <em>Dashboard</em>.</p>
<p>&nbsp;</p>
<h3>8. Proteção contra ataques DDoS ao xmlrpc.php</h3>
<p>Atualmente existe uma <a title="More Than 162,000 WordPress Sites Used for Distributed Denial of Service Attack" href="http://blog.sucuri.net/2014/03/more-than-162000-wordpress-sites-used-for-distributed-denial-of-service-attack.html">onda de ataques <em>DDoS</em></a> destinados ao arquivo <em>xmlrpc.php</em> das instalações <strong>WordPress</strong>. E é muito comum ver este tipo de ataque comprometer a performance do <em>site</em> e, muitas vezes, até tirá-lo do ar.</p>
<p>Para resolver o problema, a <a title="Sucuri Security" href="http://sucuri.net/">Sucuri.net</a> – empresa especializada em segurança <strong>WordPress</strong> – recomenda que o protocolo XMLRPC (<em>pingback</em>) seja desativado.</p>
<p>Com base no código recomendado pela <em>Sucuri</em>, escrevi um pequeno <em>plugin</em> que pode ser adicionado ao <strong>WordPress</strong>. Basta criar um arquivo chamado <em>disable-xmlrpc.php</em> em seu diretório de <em>plugins</em> (normalmente <em>wp-content/plugins/</em>) com o seguinte conteúdo:</p>
<pre class="lang:php decode:true">/**
 * Plugin Name: Disable XMLRPC
 * Description: This plugin disables the XMLRPC protocol to avoid DDoS attacks.
 * Version: 0.1 by Sucuri Security
 */</pre>
<p>&nbsp;</p>
<pre class="lang:php decode:true ">add_filter( 'xmlrpc_methods', function( $methods ) {
 unset( $methods['pingback.ping'] );
 return $methods;
} );</pre>
<p>&nbsp;</p>
<p class="lang:php decode:true ">Depois disso, salve e feche o arquivo, vá até o <em>Dashboard</em> e habilite o <em>plugin</em> <img decoding="async" class="wp-smiley" src="http://tiagohillebrandt.eti.br/wp-includes/images/smilies/icon_smile.gif" alt=":)" /></p>
<p><strong>ATUALIZAÇÃO:</strong> seguindo a dica do Diego, o bloqueio sugerido pela <em>Sucuri.net</em> é efetuado por meio de código <strong>PHP</strong>. Ou seja, vai funcionar porém exigirá vários recursos do servidor para, por exemplo, bloquear um ataque <em>DDoS</em>. Assim, se torna mais eficiente colocar este bloqueio diretamente no servidor <em>web</em>.</p>
<p>Com base nisso, apresento abaixo uma solução mais eficiente, bloqueando as requisições ao XMLRPC diretamente no servidor <em>web</em>.</p>
<p><strong>Nginx<br />
</strong>Adicionar a seguinte linha no arquivo de configuração do seu site:</p>
<pre class="lang:php decode:true ">if ($request_uri ~ ^/xmlrpc\.php$) { return 403; }</pre>
<p>&nbsp;</p>
<p>Após adicionar, será necessário reiniciar o <em>Nginx</em>.</p>
<p><strong>Apache<br />
</strong>Basta adicionar a seguinte regra ao seu <em>.htaccess</em>:</p>
<pre class="lang:php decode:true"># Disables the access to XMLRPC file
&lt;files xmlrpc.php&gt;
order allow,deny
deny from all
&lt;/files&gt;</pre>
<p>&nbsp;</p>
<h3>9. Outras medidas de segurança</h3>
<p>Além das dicas anteriores, seguem algumas outras medidas de segurança que poderiam ser adotadas:</p>
<ul>
<li>Instalar um <em>plugin</em> de segurança para evitar ataques de força bruta e/ou<em>DDoS</em></li>
<li>Manter os <em>softwares</em> do servidor atualizados</li>
<li>Atualizar as senhas dos usuários esporadicamente</li>
<li>Configurar um <em>firewall</em></li>
<li>Habilitar autenticação HTTP básica para acessar o <em>wp-admin</em></li>
</ul>
<p>&nbsp;</p>
<p>O que achou das dicas? Esse tutorial lhe ajudou de alguma forma? Se sim, tudo que peço é que ajude a divulgá-lo. E não esqueça de compartilhar suas experiências e dicas nos comentários, para incrementar ainda mais a troca de conhecimento por aqui.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
