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.sqlousite.zip. - Escrita: quem está logado pode trocar o
index.phppor 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.
- Confirme o que a hospedagem suporta. No painel, procure "SSH", "SFTP" ou "FTPS". Anote host, porta e usuário.
- Gere uma chave SSH no seu computador, não no da faculdade. Proteja a chave com uma frase-senha.
- Cadastre a chave pública no painel da hospedagem ou no
~/.ssh/authorized_keysdo servidor, como mostra o guia de chave SSH na VM. - Configure um cliente que você fecha: FileZilla, WinSCP ou o próprio
sftpdo terminal. No FileZilla, escolha o protocolo SFTP no Gerenciador de Sites. - Teste com um arquivo inofensivo, como um
teste.txt, antes de mexer no site. - 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.sqlna 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,.zipou.bakdentro 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?
Referência: http://eu5org.freewebhostingarea.com/ftp/