DevSecOps

18 jun, 2010

Cuidado com o que você esquece no servidor

Publicidade

Quem desenvolve sistemas para web sabe que o ambiente de produção nem
sempre é aquela maravilha de organização, sempre ficam uns arquivos para
trás, como teste.php, index_antiga.php, naosei.exemplo etc.

Só que, infelizmente, o mundo não é tão azul assim e existem pessoas
que adoram tirar proveito e prejudicar os outros. E o mais fácil de achar são projetos com
arquivos esquecidos, como por exemplo o famoso connect.inc,
con.inc, conectar.inc
. Isso já mostra o quanto de
“sobrinhos” existem no mercado de sistemas para web, reflete a baixa profissionalização de programadores web e a falta
de visão das empresas, que ainda pagam esses serviços com a filosofia do
“bom e barato”.

Se tem uma coisa que todo programador web deveria
saber é que o seu sistema VAI estar na internet!!! Isso parece óbvio para você? Ótimo. Pois para uma grande parte de
programadores web, não.

Vamos fazer um teste? Abra o Google e busque por isso backup
filetype:sql
. Viram que maravilha?

Ok. Não retornou tantos resultados assim, vamos perder mais 5min
estudando a busca do Google e vamos pesquisar por “bkp” ext:SQL.

O negócio tá ficando mais bonito, não é? Agora pense naquele carinha que não tem o que fazer, que fica o dia inteiro na internet tentando
achar algo para atrapalhar e começa a pesquisar site por site atrás desses
lixos no servidor.

Você, programador, sabe que muitos programas geram
arquivos de backups dos arquivos que estão sendo construídos, por
exemplo o Kwrite gera um nomedoarquivo.php~ do arquivo que você está programando e muitas vezes você manda pro FTP sem nem saber.

Quer ver que legal? Pesquise isso “index” ext:php~

Tá ficando divertido, né? Acho que mais uma meia hora
estudando meios de fazer buscas no Google e vou achar alguma
senha de conexão a algum banco de dados.

Como eliminar isso? Conheço três soluções:

  1. Tomar vergonha na cara duas vezes ao dia. Uma no início do
    expediente e outra no final.
  2. Usar sempre um controle de versão (svn) e, quando você for enviar algo
    para internet, usar o comando svn export
    projeto projetolimpo
    , que vai gerar uma pasta apenas
    com os arquivos do projeto que foram adicionados ao controle de versão do
    seu repositório.
  3. Colocar um arquivo robots.txt na raiz da sua aplicação bloqueando o
    acesso dos robôs das buscas no seus diretórios. Você não sabe o que é o
    robots.txt? O Google sabe.

Essa falha de segurança cometida por muitos programadores é apenas a
ponta do iceberg.