Bloqueie arquivos expostos .git, .env e backups
Um .env ou backup.sql esquecido na raiz web pode entregar todas as suas senhas e chaves de API. Verificar leva um minuto, e bloquear, poucas linhas.
O código e a configuração ficam em inglês.
Verifique o seu próprio site
Cada um destes deve retornar 403 ou 404, nunca 200:
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/.env
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/.git/HEAD
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/backup.sqlVerifique apenas sites que são seus. A análise profunda do HackGrade testa muitos outros caminhos, depois que você comprova a propriedade.
Bloqueie no nginx
# hidden files and folders (.git, .env, .htpasswd), but keep /.well-known working
location ~ /\.(?!well-known/) { deny all; }
# backups and dumps
location ~* \.(sql|bak|old|orig|swp|log)$ { deny all; }Bloqueie no Apache
RedirectMatch 404 "/\.(git|svn|hg)(/|$)"
<FilesMatch "(^\.env|\.(sql|bak|old|orig|swp|log)$|~$)">
Require all denied
</FilesMatch>
Options -IndexesSe algo ficou exposto
- Apague o arquivo da raiz web. Guarde os backups fora dela.
- Considere que o conteúdo foi copiado: troque as senhas do banco de dados e renove todas as chaves de API e tokens que estavam nele.
- No caso de uma pasta
.gitexposta, revise também o histórico de commits em busca de segredos que tenham sido commitados alguma vez.