Da Anonimo (non verificato) , 29 Aprile 2026

Risposta agli incidenti

Hai committato una chiave API, password o chiave privata. Rimuoverla dall'ultimo commit non basta — Git la mantiene in ogni commit precedente fino a riscrittura della storia.

Passo 1: ruotare immediatamente

Prima di toccare il repo, revocare la credenziale. Assumere che la storia gia pubblicata sia stata replicata, scrappata o cachata.

Passo 2: riscrivere con filter-repo

git clone --mirror [email protected]:org/repo.git repo-mirror
cd repo-mirror
git filter-repo --path config/secrets.yml --invert-paths
cat > replace.txt <<'EOF'
regex:AKIA[0-9A-Z]{16}==>REDACTED
literal:hunter2==>REDACTED
EOF
git filter-repo --replace-text replace.txt

Passo 3: force-push

git push --force --all
git push --force --tags

Passo 4: prune oggetti locali

git reflog expire --expire=now --all
git gc --prune=now --aggressive

Rilevare i segreti precocemente

#!/usr/bin/env bash
gitleaks protect --staged --redact || exit 1

Errori comuni

Credere che un force-push sia sufficiente — cache, fork, mirror e cloni del team contengono ancora i dati. Saltare la rotazione.

Audit

git log -p --all -S "AKIA"
git grep "hunter2" $(git rev-list --all)