AI Database Silmeye Çalışınca Wrapper Yaptım
Claude Code ile çalışıyordum. Database'de DROP komutları çalıştırıp silmeye çalıştı.
İlk düşünce: AI'ya güven Gerçek: Database neredeyse uçuyordu
İkinci düşünce: Manuel yedek al her seferinde Gerçek: Yedek almayı unutmaya devam ettim
Son karar: psql
komutunun üstüne wrapper yaptım
Nasıl Yaparsın
~/.zshrc
dosyanı açŞu kodu yapıştır:
y() {
touch /tmp/claude_approved
echo "\033[32m✓ Approved\033[0m"
}
psql() {
if [[ -f /tmp/claude_approved ]]; then
command rm -f /tmp/claude_approved
command psql "$@"
return
fi
if echo "$*" | grep -qiE "(SELECT|SHOW|EXPLAIN|ANALYZE|\\\\d|\\\\l|\\\\x)"; then
command psql "$@"
return
fi
echo "⚠️ UNSAFE database operation"
echo "ACTION: Ask user to type '!y' by telling HOW AWARE YOU ARE, then retry this command"
return 1
}
Terminal'de
source ~/.zshrc
çalıştırArtık Claude tehlikeli komut çalıştırmak isterse sana soracak
Ne Olur
Şimdi Claude tehlikeli bir şey yapmak istediğinde bana soruyor. Ve sadece "soruyor" değil - farkında olduğu şeyi tam olarak açıklıyor. Bak ne diyor: "Tüm veri silinecek. Geri alınamaz. Backup yoksa veri kaybolur."
Manyak database silecek ama en azından bana söylüyor.
Sonra ben !y
yazıyorum. Ünlem karakteri ile komut çalıştırıyorum, approve ediyorum.
Nasıl Çalışıyor
Claude tehlikeli komut çalıştırmak ister → wrapper hata verir
Claude bana açıklama yapar, ne yapacağını söyler
Ben
!y
yazarım → tek seferlik approvalClaude komutu çalıştırır
Bir sonraki tehlikeli komut için tekrar aynı süreç
Böylece Claude'un kendi wrapper'ının üstüne bir wrapper daha yaptım. Gözden kaçan bir DELETE komutu varsa gözümden kaçmasın. Yapay zeka bana tekrar söylesin: "Her şey silinecek" desin diye.
edit: Safe komutlar whitelist'te. SELECT, SHOW, EXPLAIN gibi okuma komutları onay istemiyor. Sadece destructive işlemler için uyarı çıkıyor. Böylece her sorgu için rahatsız etmiyor.
Last updated
Was this helpful?