QueryProxy

QueryProxy ile tanışın

Her üretim sorgusunun önüne bir onay koyan, kimlik bilgisi dağıtmayan açık kaynak ve kendi sunucunuzda çalışan portal.

Güncelleme: 3 dk okuma

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

  1. 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.
  2. Talep daha gönderilmeden SQL parse edilip denetlenir: WHERE’siz UPDATE/DELETE reddedilir, LIMIT’siz SELECT’e limit eklenir (varsayılan 1000, üst sınır 10000), yönetim komutları doğrudan engellenir.
  3. 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).
  4. 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.

Paylaş

Gezinmek için ok tuşları, açmak için Enter.