Privacidade Por Equipe DevBras

Capa do artigo: FTP pelo navegador: a sessão que fica aberta e entrega o seu site

FTP pelo navegador: a sessão que fica aberta e entrega o seu site

Troque o gerenciador FTP web da hospedagem por SFTP num cliente que você fecha, sem senha salva no navegador, e encerre a sessão de verdade.

Laboratório da faculdade, quarta à noite. Você subiu o tema novo do site pelo gerenciador de arquivos web da hospedagem grátis, fechou a aba e foi embora. No dia seguinte, a próxima pessoa naquela máquina abre o navegador, ele restaura as abas e lá está a lista de pastas, logada, com o config.php que guarda a senha do banco. Ninguém invadiu nada. A resposta curta: use SFTP num programa que você fecha, não salve senha em navegador de máquina compartilhada e clique em "Sair" antes de fechar qualquer painel.

O gerenciador de FTP no navegador é cômodo porque junta tudo num lugar: usuário, senha, arquivos e sessão. É exatamente por isso que ele é perigoso. Este guia mostra por que a sessão sobrevive mais do que você imagina, como migrar para um canal cifrado e o que fazer se você já deixou uma aba aberta onde não devia.

Por que fechar a aba não encerra o acesso

Quando você entra no gerenciador web, o servidor cria uma sessão e devolve um cookie. Enquanto esse cookie existir e a sessão não expirar no servidor, qualquer pessoa com aquele navegador está logada. Fechar a aba não apaga o cookie. Em muitos navegadores, fechar a janela também não, porque a opção de continuar de onde parou restaura abas e cookies de sessão juntos.

O segundo problema é a senha. O navegador oferece salvar, a pessoa aceita para não digitar de novo, e agora a credencial da hospedagem está no perfil de um computador que não é dela. Em máquina compartilhada, isso equivale a deixar a chave na porta.

O terceiro é o protocolo. O FTP clássico manda usuário e senha sem cifra. Em Wi-Fi público ou rede de escritório, qualquer um que consiga observar o tráfego lê a credencial. Muitos gerenciadores web conversam com o servidor FTP por trás, e você não sabe se esse trecho é cifrado.

O que fica exposto quando a sessão vaza

  • Arquivos de configuração com senha do banco, chave de API e token de e-mail.
  • Backups deixados na pasta pública "só por um minuto", como backup.sql ou site.zip.
  • Escrita: quem está logado pode trocar o index.php por uma página de phishing com o seu domínio.

Como migrar para SFTP passo a passo

SFTP é transferência de arquivos sobre SSH. Tudo vai cifrado, inclusive a autenticação, e você pode usar chave em vez de senha. Se a sua hospedagem oferece acesso SSH, ela quase sempre oferece SFTP. Se só oferece FTP, procure a opção de FTP sobre TLS (FTPS) e exija o modo cifrado no cliente.

  1. Confirme o que a hospedagem suporta. No painel, procure "SSH", "SFTP" ou "FTPS". Anote host, porta e usuário.
  2. Gere uma chave SSH no seu computador, não no da faculdade. Proteja a chave com uma frase-senha.
  3. Cadastre a chave pública no painel da hospedagem ou no ~/.ssh/authorized_keys do servidor, como mostra o guia de chave SSH na VM.
  4. Configure um cliente que você fecha: FileZilla, WinSCP ou o próprio sftp do terminal. No FileZilla, escolha o protocolo SFTP no Gerenciador de Sites.
  5. Teste com um arquivo inofensivo, como um teste.txt, antes de mexer no site.
  6. Desative o acesso que sobrou. Se o painel deixa desligar o FTP comum ou o gerenciador web, desligue. Se não deixa, troque a senha da conta FTP para uma longa e única.

Exemplo: publicar o tema novo pelo terminal

Cenário: o site está em /home/marco/public_html e a hospedagem aceita SSH na porta 22. Gere a chave uma vez:

ssh-keygen -t ed25519 -C "marco@notebook"
# aceite o caminho padrão e digite uma frase-senha

Para não repetir host e usuário a cada comando, crie uma entrada no ~/.ssh/config:

Host meusite
    HostName ftp.meusite.com.br
    User marco
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Agora a sessão interativa fica curta, e ela termina quando você digita exit:

sftp meusite
sftp> cd public_html/wp-content/themes
sftp> put -r tema-novo
sftp> ls tema-novo
sftp> exit

Se o servidor tem rsync instalado, sincronizar só o que mudou é ainda melhor, porque ele não reenvia arquivo igual:

rsync -avz --dry-run ./tema-novo/ meusite:public_html/wp-content/themes/tema-novo/
# confira a lista, depois rode de novo sem --dry-run

O --dry-run mostra o que seria copiado sem copiar nada. Nunca rode rsync com --delete sem olhar essa lista primeiro: um caminho errado apaga o site.

Se você precisa usar o gerenciador web

Às vezes não há escolha: hospedagem gratuita sem SSH, computador emprestado, urgência. Nesse caso, reduza o estrago.

  • Abra uma janela privativa. Ao fechar todas as janelas privativas, o navegador descarta os cookies delas.
  • Recuse salvar a senha, sempre, em máquina que não é sua.
  • Clique em Sair antes de fechar. É o logout que invalida a sessão no servidor; fechar a janela só apaga o cookie do lado do navegador.
  • Não suba nem baixe backup de banco por esse caminho. Arquivo de backup vai cifrado ou por SFTP.

Já deixei a sessão aberta. E agora?

Trate como vazamento até provar o contrário. Troque a senha da conta FTP e do painel, o que derruba sessões em muitos painéis. Troque também a senha do banco que estava no arquivo de configuração e atualize o arquivo. Depois, confira a data de modificação dos arquivos principais procurando algo alterado depois da última vez que você mexeu.

ssh meusite 'find public_html -type f -mtime -2 -printf "%TY-%Tm-%Td %TH:%TM %p\n"'

Esse comando lista arquivos modificados nos últimos dois dias com data e hora. O -printf é do find do GNU, comum em hospedagem Linux. Arquivo PHP novo numa pasta de uploads é sinal de alerta. A lógica de trocar antes de limpar é a mesma do guia sobre segredo vazado no Git: primeiro a credencial perde o valor, depois você investiga.

Erros comuns

  • Achar que fechar a aba é sair. O cookie continua válido e a próxima pessoa entra logada.
  • Salvar a senha da hospedagem no navegador do trabalho. Qualquer um com acesso ao perfil vê a senha nas configurações.
  • Usar FTP sem cifra em Wi-Fi público. Usuário e senha trafegam legíveis para quem observa a rede.
  • Deixar backup.sql na pasta pública. Ele pode ser baixado direto pela URL, sem login nenhum.
  • Manter o gerenciador web ligado "para emergência". Vira a porta dos fundos que ninguém monitora.
  • Usar a mesma senha no FTP, no painel e no e-mail. Uma sessão vazada abre as três portas.

Checklist

  • A transferência de arquivos usa SFTP ou FTPS, não FTP comum.
  • O acesso SSH usa chave com frase-senha, gerada no seu computador.
  • Nenhum navegador de máquina compartilhada tem a senha da hospedagem salva.
  • O gerenciador web e o FTP comum estão desativados, ou têm senha longa e única.
  • Não há .sql, .zip ou .bak dentro da pasta pública.
  • Você sabe trocar a senha do painel e do banco em menos de dez minutos.
  • Depois de usar um painel web, você clica em Sair antes de fechar.

Abra agora o painel da sua hospedagem numa janela normal, feche o navegador e abra de novo: você continua logado no gerenciador de arquivos?

Avalie este artigo

Referência: http://eu5org.freewebhostingarea.com/ftp/