
No final dos anos 90 era comum um tipo de ataque que derrubava servidores, máquinas de usuário (principalmente com Windows 95 ou Windows 98), congestionava redes, chamado Ping da Morte (link para a Wikipédia).
No universo do WordPress também temos pings, porém eles servem para indicar a outros sites que implementamos novidades no nosso blog. É útil para dar a conhecer a alguns sistemas de indexação, imediatamente após a publicação de um novo post, que conteúdo fresco foi disponibilizado.
O WordPress vem “de fábrica” com uma lista bem resumida de endereços padrão a serem pingados quando da publicação de um post. OK, a lista contém, por padrão, apenas um endereço para pingar: http://rpc.pingomatic.com
. A maioria dos usuários nem se preocupa com esse recurso, mas alguns outros, na expectativa de ver explodir o tráfego em seus sites, acabam cometendo algumas imprudências.
Seções desta página
Um caso real
Os VPSs da PortoFácil são máquinas bastante robustas, conectadas em redes de alta qualidade, e caso o site utilize a CloudFlare como acelerador, mesmo o mais simples dos VPSs pode aguentar um volume de tráfego considerável (acima de 1.000 usuários simultâneos, por exemplo).
Um cliente não estava conseguindo ter mais do que 200 usuários simultâneos porque seu VPS travava, e não havia nada que chegasse em termos de recursos para fazer a máquina dar conta de um tráfego assim de pequeno.
O cliente acabou contratando um profissional para reescrever o código do template, que ele usava, o que melhorou muito o resultado, mas não resolveu o problema.
Condição de disputa
O que acontecia no caso em questão era que o wp-cron entrava em condição de disputa, tanto pelos problemas inerentes à implementação do WordPress quanto pelo fato de realmente haver tarefas muito demoradas, ou ainda pior, que não terminavam nunca, levando ao esgotamento da memória do sistema.
Depois de muito sofrimento identificamos que havia conexões que se abriam mas nunca fechavam para o endereço http://rpc.icerocket.com:10080/
. E foi como conseguimos identificar o mecanismo do ping assassino de WordPress!
Como evitar o ping da morte
É muito simples evitar o ping da morte do WordPress: basta ter bom senso.
Pense que serviços de pings obscuros não valem o risco de fazer seu WordPress inteiro virar uma anã branca de tão pesado. Considere enviar pings automáticos apenas para os serviços que lhe são relevantes, que em nossa opinião são os seguintes:
http://rpc.pingomatic.com/
http://blogsearch.google.com/ping/RPC2
http://api.my.yahoo.com/RPC2
http://api.my.yahoo.com/rss/ping
http://ping.feedburner.com
http://xping.pubsub.com/ping
A razão para a utilização dos serviços do Google, do Yahoo! e do FeedBurner é bastante óbvia. Já a utilização do xping.pubsub.com/ping
é mais sutil: este serviço replica o seu ping para dezenas de outros serviços, automaticamente.
A rigor, na verdade, bastaria manter este serviço ativo na lista de pings e pronto.
Conclusão
O WordPress é uma plataforma fantástica, mas como toda ferramenta precisa ser bem utilizada. Se for mal configurado, seja por desconhecimento, má fé ou olho grande (visitas orgânicas se aumentam escrevendo conteúdo bom, e não pingando serviços de indexação), ele demandará um servidor da NASA para rodar, fazendo com que o faturamento seja sempre insuficiente para cobrir as despesas.