AI Database Silmeye Çalışınca Wrapper Yaptım

r/ClaudeAIr/ClaudeCode

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

  1. ~/.zshrc dosyanı aç

  2. Ş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
}
  1. Terminal'de source ~/.zshrc çalıştır

  2. Artı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 approval

  • Claude 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?