QueryProxy
Doküman menüsü

Üretim güvenliği

QueryProxy'yi erişilebilir bir ağda çalıştırmak için kontrol listesi; uygulama anahtarından HTTPS'e, salt okunur bağlantılardan varsayılan korumalara kadar.

Güncelleme:

QueryProxy, önündeki her veritabanının kimlik bilgilerini saklar; bu yüzden kurulumun kendisini de hassas bir sistem olarak ele alın. Bir ağa açmadan önce bu listeyi gözden geçirin.

Önerilen üretim düzeni

  • Yalnızca okuyan ekipler ya da kullanıcılar için yalnızca SELECT yetkisi olan bir veritabanı kullanıcısıyla ayrı bir bağlantı tanımlayın. Yazma erişimini başka bir bağlantıda tutun; çünkü onaylanan yazmalar, gönderildikleri bağlantı üzerinden çalışır.
  • Mümkünse bu salt okunur bağlantıyı bir replika’ya yöneltin.
  • QueryProxy ile hedef veritabanı arasındaki ağ yolunu kısıtlayın.
  • PostgreSQL’de aktarım güvenliğini kendiniz kontrol edin: bağlantı bugün sslmode=prefer kullanıyor, bir TLS ayarı v0.3.0 ile gelecek.

SQL guard son savunma hattı değildir. Veritabanı tarafında salt okunur çalıştırma gelene kadar (v0.3.0), savunmayı veritabanı yetkileriyle de kurun.

Kontrol listesi

  • APP_KEY’i açıkça ayarlayın ve sabit tutun. Bağlantı kimlik bilgilerini ve sohbet secret’larını şifreler; değişirse saklanan tüm kimlik bilgileri okunamaz hale gelir. Şu komutla üretin: docker run --rm queryproxy/queryproxy php artisan key:generate --show ve -e APP_KEY=... olarak verin (aynı kurulumun tüm konteynerleri aynı anahtarı paylaşmalıdır). Anahtarı döndürürken eskisini APP_PREVIOUS_KEYS içine taşıyın; böylece mevcut şifreli veriler çözülmeye devam eder. Açık bir APP_KEY yoksa konteyner ilk açılışta bir anahtar üretir ve veri volume’üne yazar.
  • HTTPS ile sunun: TLS sonlandıran bir ters vekilin arkasında (konteyner :7432 üzerinde düz HTTP sunar). Ardından SESSION_SECURE_COOKIE=true ayarlayın.
  • Önünde bir vekil varsa TRUSTED_PROXIES’i vekilinizin IP’sine ya da CIDR’ına ayarlayın. Varsayılan olarak hiçbir vekile güvenilmez; ayarlayana kadar uygulama bağlanan eşi istemci sayar: X-Forwarded-Proto yok sayılır (HTTPS algılanmaz, dolayısıyla HSTS başlığı gönderilmez) ve denetim kayıtlarına vekilin adresi yazılır. * değerini asla vermeyin: her istemcinin X-Forwarded-For başlığını taklit etmesine izin verir; bu hem denetim izindeki istemci IP’sini sahteler hem de IP bazlı oldukları için giriş ve 2FA denemelerini sınırsız kılar. Bkz. Yapılandırma.
  • Demo verisini kapalı tutun (QUERYPROXY_SEED_DEMO=false, varsayılan); erişilebilir her kurulumda.
  • Ayrıcalıklı roller için 2FA zorunlu kılın: QUERYPROXY_REQUIRE_2FA=admins (ya da dba / all). Kullanıcılar bir sonraki girişte kayda yönlendirilir.
  • Bağlantı hedeflerini kısıtlayın: DBA’lerin rastgele host’lara ulaşmaması gerekiyorsa QUERYPROXY_CONNECTION_HOST_DENYLIST / QUERYPROXY_SQLITE_ALLOWED_DIR kullanın.

Varsayılan olarak açık olanlar

Bunlar için yapılandırma gerekmez:

  • Content-Security-Policy dahil güvenlik yanıt başlıkları ve Livewire ucunda istek sınırı (rate limit).
  • Diskte şifreli bağlantı kimlik bilgileri ve TOTP iki adımlı doğrulama (siz zorunlu kılana kadar isteğe bağlı).
  • Yorumları normalize eden SQL guard’ları ve çalıştırıcıda uygulanan satır tavanı.
  • Yeniden oynatmaya karşı korumalı, kimliğe bağlı sohbet callback’leri ve kendi talebini onaylamanın engellenmesi.
  • Değiştirilemez denetim günlükleri ile giriş/webhook istek sınırı.
  • SSRF’e karşı korumalı giden webhook’lar.
  • Yazılırken maskelenen, hata durumunda kapalı kalan sonuç depolaması.

Sonraki adımlar

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