Her mühendislik ekibi eninde sonunda şu konuşmayı yapar: bir geliştiricinin gerçek bir hatayı ayıklamak için üretim verisine ihtiyacı vardır ve içeri girmenin yolları bellidir — parolayı vermek, tünel açmak ya da bütün gün başkaları adına sorgu çalıştıran bir DBA. Üçü de kötüdür: ilki kazaların başladığı yerdir, son ikisi ölçeklenmez.
QueryProxy bizim cevabımız: ekibinizle veritabanlarınızın arasında duran, paylaşılan parolaları bir iş akışıyla değiştiren, kendi sunucunuzda çalışan bir portal.
Nasıl çalışır
- Geliştirici, DBA’in kendisine tanımladığı bir bağlantı üzerinde korumalı editörde SQL yazar. Kimlik bilgileri AES-256 ile şifreli kasada kalır.
- Talep daha gönderilmeden SQL parse edilip denetlenir:
WHERE’sizUPDATE/DELETEreddedilir,LIMIT’sizSELECT’e limit eklenir (varsayılan 1000, üst sınır 10000), yönetim komutları doğrudan engellenir. - Bir DBA onaylar ya da reddeder — web kuyruğundan veya etkileşimli düğmelerle doğrudan Slack’ten. Her sohbet geri çağrısı HMAC-SHA256 ile doğrulanır, tekrar saldırılarına karşı korunur; kimse kendi talebini onaylayamaz (sistem yöneticisi bunu geçersiz kılabilir; geçersiz kılma denetim günlüğünde işaretlenir).
- Kuyruk işçisi sorguyu asenkron çalıştırır; sonuçları maskeleme kurallarından geçirerek satır satır akıtır — kurallarınızla eşleşen değerler diske değmeden önce maskelenir — ve her adımı yalnızca eklenen bir denetim günlüğüne yazar.
Bugün nelerle geliyor
- Admin / DBA / Developer / Auditor rollü, sıkı izolasyonlu takımlar
- PostgreSQL, MySQL, MariaDB, SQLite ve SQL Server hedefleri (SQL Server için özel imaj gerekir: yayımlanan imajda sürücü yoktur)
- Desen eşlemeyle değil, gerçek parse ile uygulanan SQL korumaları
- Slack etkileşimli onayları ve yeniden oynatmaya karşı korumalı Teams HMAC aksiyon ucu
- Kolon deseni ve içerik regex’iyle veri maskeleme (full / partial / hash)
- Rol bazında zorunlu kılınabilen, isteğe bağlı TOTP iki adımlı doğrulama
- Akış hâlinde NDJSON sonuçlar, CSV dışa aktarma, otomatik saklama temizliği
- Yalnızca eklenen, filtrelenebilir, dışa aktarılabilir denetim günlüğü (uygulama kayıtları ne düzenler ne siler)
İki dakikada deneyin
docker run -d --name queryproxy \
-p 7432:7432 \
-v queryproxy-data:/var/www/html/storage/app \
-e [email protected] \
-e QUERYPROXY_ADMIN_PASSWORD='choose-a-strong-password' \
queryproxy/queryproxy
http://localhost:7432 adresini açıp bu e-posta adresiyle giriş yapın. Admin
değişkenleri ilk açılışta ilk hesabı oluşturur; vermezseniz hesabı
docker exec -it queryproxy php artisan queryproxy:create-admin ile açarsınız.
Bunun yerine her rolden hesabı olan bir demo takım denemek için
QUERYPROXY_SEED_DEMO=true ile birlikte QUERYPROXY_SEED_DEMO_FORCE=true
verin (imaj APP_ENV=production ile çalıştığından seeder aksi hâlde reddedilir)
— yalnızca demo instance’lar içindir, production için değil. Tek seferlik parola
konteyner loglarına yazılır. Dokümantasyon,
hızlı başlangıçtan
Slack kurulumuna ve
koruma kurallarının ayrıntısına kadar her şeyi
kapsıyor.
QueryProxy, AGPL-3.0 lisansıyla ücretsiz ve açık kaynaktır. Yıldızlayın, çatallayın, bu gece çalıştırın — keskin bir şey bulursanız issue takipçisi ve güvenlik politikası sizi bekliyor.