De há uns tempos para cá submeter um comentário no meu blogue quase sempre resultava de um timeout, embora o mesmo fosse inserido, ás vezes o timeout demorava quase 1 minuto.
Depois de andar ás voltas a toda a instalação e de ter reinstalado a mesma várias vezes, cheguei á conclusão que a culpa era da configuração de um plugin. O nome do Plugin é “W3 Total Cache”, este plugin faz cache de várias “coisas” do WordPress uma delas é o “database cache”, que faz cache dos queries do WordPress ao MySQL.
Á primeira tentativa para desactivar recebi também um timeout, resolvi investigar, era a pasta “dbcache” do plugin que além de milhares de pastas e ficheiros, tinha um tamanho absurdo para testar renomeie a pasta e criei outra com o mesmo nome, assim consegui desactivar a parte da cache da Base de Dados do W3 Total Cache, com o plugin desactivado o blogue deixou de funcionar devido a uma limitação do meu host, que não deixa um utilizador do MySQL ter mais do que 10 ligações simultaneas ao servidor de Base de Dados.
Baixei então para um valor muito pequeno (120 segundos) a validade da cache dos queries e por agora parece que está tudo a funcionar, alterei também o “Garbage collection interval” para 180 segundos.
Embora seja um plugin que aconselho devido a acelarar bastante a apresentação do site, fica aqui a recomendação!!!
Não encontrei a causa por isso posso continuar á mercê dos hackaros, mas pelo menos para já os sites estão limpos (este blogue está alojado noutro provider e não foi afectado).
O processo de limpeza foi simples mas demorado, comecei por fazer download de todos os ficheiros que tinha na conta afectada, pagar numa instalação “virgem” do WordPress e copiar para cima dos ficheiros já existentes, de cada instalação que tenho do WordPress. Mesmo assim continuava a haver ficheiros infectados. Fiz uma pequena aplicação em C# que pesquisa recursivamente todos os ficheiros pelo código injectado e o apaga copiando para outro directorio os ficheiros “limpos”.
Se alguém padecer do mesmo mal, que esteja á vontade para me solicitar o código que usei para percorrer todos os ficheiros em todos os directórios e sub-directórios e encontrar os ficheiros afectados. Não disponibilizo aqui a aplicação porque está um bocado tosca, para a usar convém ler o código e ajustar á infecção que os ficheiros tiverem.
Embora o Chrome não seja o browser que uso no dia a dia, ganhou mais um ponto na minha consideração. É o browser que arranca mais rapidamente no meu pc, dai quando preciso se ir á net e não posso esperar que abra outro browser abra utilizo-o. Hoje ao abrir recebi um erro que está na imagem:
O Web site em antoniocampos.net contém elementos do site atelier43.pl, o qual parece alojar software maligno ““ ou seja, software que pode danificar o seu computador ou funcionar sem o seu consentimento. A mera visita a um site que contenha software maligno pode infectar o seu computador.
Para obter informações mais detalhadas sobre os problemas com estes elementos, visite a Página de diagnóstico Navegação segura no Google para atelier43.pl.
depois de olha para o código fonte vi que de alguma forma foi injectado código no ficheiro original, o código malicioso inserido foi o seguinte:
Logo a seguir ao fecho da tag </head>, visitei outros dominios todos alojados no mesmo sitio e todos os dominios tinham o mesmo sintoma, depois de uma analise cuidada reparei que havia vários ficheiros infectados pela injecção, conforme a extenssão do ficheiro tinham código diferente.
Este é o código responsavel por infectar os ficheiros se fizerem um base64_decode e analisarem o código aparece a forma como os ficheiros foram infectados, mas não explica como o código “entrou” pela primeira vez.
Além das infecções referidas foram craidos vários ficheiros, com vários nomes que aguardam o POST código php e o executam no servidor, deixando assim todos os ficheiros a que o utilizador que está a correr o site vulneraveis.
Depois de várias pesquisas no Google tudo aponta para uma falha no WordPress embora não tenha descoberto em que versão, penso que deverá ser na 2.8.6 pois nessa conta de alojamento tenho 3 instalações de wordpress todas actualizadas para a 2.8.6. Segundo a sabedoria do Google não fui o primeiro a ser infectado por esta praga, embora dos artigos que encontrei no google não sejam os mesmos, a infecção e a presença de código malicioso é semelhante á que me aconteceu.
Por isso aconselho todos os que tem sites em WordPress que verifiquem se estão infectados.
Estou a descarregar todos os ficheiros que tenho alojados neste servidor para analisar mais atentamente o que aconteceu, creio que não vou chegar a nenhuma conclusão de como fui infectado uma vez que não tenho acesso aos logs do apache, mas no minimo vou ter que limpar todos os ficheiros.
Uma das soluções seria apagar todos os ficheiros da instalação e colar uma versão nova de todos os ficheiros, mas isso fará com que todas as costumizações de temas e plugins se percam, e obrigaria á instalação de todos os plugins novamente.
Mal haja desolvimentos sobre a solução (pelo menos da limpeza dos ficheiros) crio um novo post com os mesmos.
Se tem um blogue em WordPress e está em inglês e o quer converter facilmente para a versão Portuguesa do WordPress basta editar o ficheiro “wp-config.php” que está na pasta principal da instalação do WordPress e alterar a linha:
define (‘WPLANG’, ”);
para:
define (‘WPLANG’, ‘pt_PT’);
No próximo login como admin ou utilizador com permissões de administração, irá surgir no topo uma notificação para um upgrade, basta efectuar o upgrade e o WordPress passa a estar em inglês a passa em Português.
Se não aparecer a mensagem basta ir ao menu “Tools” na sidebar do painel de administração e clicar em “upgrade” e depois fazer “Re-install Automatically” depois de concluido surge a dita notificação de upgrade.
Experimentei em dois blogues e num deles só funcionou após ter efectuado o segundo passo.
Para uma personalização maior do wordpress criei um pequeno plugin que permite alterar a imagem que aparece no topo do formulário de login. Podem ver o resultado final aqui
Editar directamente o tema é complicar os futuros updates, dai a criação de um plugin para o efeito.
A utilização do plugin é muito simples é só fazer upload da pasta do plugin para a pasta wp-content/plugins/ do wordpress e colocar a imagem pretendida com o nome wp-custom-login-logo.png na mesma pasta, depois é só activr o plugin e está feito.
Por um engano ao submeter o plugin o nome do directório do plugin ficou mal escrito, fica um bocado mal, mas por agora vou deixar assim.
Já tinha tentado usar vários providers de OpenID, mas sempre tive dificuldade de me recordar o URL do serviço, há pouco tempo conheci o Sapo OpenID registei-me e comecei a usar, mesmo assim sempre que precisava de fornecer o URL para ser usado com o OpenID tinha que regressar ao site para o obter, vai dai resolvi criar um plugin que permite muito facilmente num blog em WordPress adicionar as tags necessárias no header do blog para que ao fornecer o URL do blog seja detectado o nosso servidor de OpenID (no caso o Sapo.pt).
A persona a usar é configurada no interface de administração do WordPress.
A criação deste plugin serviu também para aprofundar os meus conhecimentos em WordPress, foi escrito de raiz isto dificultou bastante a tarefa, mas soube bem ve-lo a funcionar correctamente.