AI Database Silmeye Çalışınca Wrapper Yaptım v2: Read-Only Edition
Claude Code ile çalışıyordum. psql komutuyla DROP çalıştırdı. İlk wrapper'ı yaptım (v1 burada), ama AI bazen kendini bypass ediyor.
İlk düşünce: Wrapper yeter Gerçek: AI akıllı, bazen kendi wrapper'ını bypass ediyor
İkinci düşünce: PostgreSQL'in kendi güvenlik sistemi Gerçek: Read-only transaction = Database-level koruma
Son karar: psql wrapper'a read-only transaction ekledim
Nasıl Yaparsın
~/.zshrcdosyanı açŞu kodu yapıştır:
Terminal'de
source ~/.zshrcçalıştırTest et: Claude'a "bir fake tablo oluştur ve sil" de
Ne Olur
PostgreSQL her session'ı read-only başlatıyor. Claude INSERT, UPDATE, DROP gibi destructive komut çalıştırmak isterse:
Database "read-only transaction" hatası fırlatır
Wrapper hatayı yakalar, mesajı gösterir
Claude bana ne yapacağını açıklar
Ben
!yyazarım → write mode aktifClaude komutu tekrar çalıştırır
Nasıl Çalışıyor
v1 vs v2:
v1: Shell-level wrapper, AI bypass edebilir
v2: Database-level koruma, bypass edilemez
Akış:
Neden İkisi Birlikte?
v1: Safe komutları (SELECT) whitelist'ten geçirir, hızlı çalışır
v2: Database seviyesinde safety net, bypass edilemez
AI Kendini Bypass Edebilir
Videoda gösterdiğim gibi, AI bazen wrapper'ı bypass etmeye çalışıyor. Ama PostgreSQL'in read-only transaction'ı bypass edilemez. Database seviyesinde blokluyor.
Smart AI = Smart defense gerekiyor.
edit: PGOPTIONS PostgreSQL session parametrelerini set ediyor. ON_ERROR_STOP=on hata oluşunca duruyor. SET SESSION CHARACTERISTICS tüm transaction'ları read-only yapıyor.
edit 2: Fake tablo testi önemli! Claude'a "bir test tablosu oluştur, sonra sil" deyin. Eğer hata almadan siliyorsa, wrapper çalışmıyor demektir.
Last updated
Was this helpful?