Mühendislik notlarıKarar
Kurumlar arası izolasyon neden üç katman
Tek bir unutulmuş WHERE koşulu bir sızıntıdır. Bu yüzden birbirinden bağımsız üç katman.
Bir kurumun belgesinin başka bir kuruma görünmesi bu ürünün tek ölümcül riskidir. Uygulama hatası kaçınılmazdır; kusursuz koda dayanan bir savunma istemedik. Karar: birbirinden bağımsız üç katman. Sızıntı için üçünün birden kırılması gerekir.
Birinci katman uygulama. Ağ geçidi kiracıyı yalnız doğrulanmış kimlik belirtecinden alır; istek gövdesinden ya da başlıktan asla. İç çağrılar kiracıyı açıkça taşır; her işleyici kiracıyı bağlamdan ister, yoksa isteği reddeder.
İkinci katman veritabanı. Kiracıya ait her tabloda satır düzeyinde güvenlik politikası vardır ve tablo sahibi için de zorunludur. Her istek işlemi, kiracıyı oturum değişkenine yazan tek bir yoldan açılır. Bir sorgu kiracı koşulunu unutursa politika yine filtreler.
Üçüncü katman arama. Her kiracının ayrı vektör koleksiyonu ve ayrı arama dizini vardır. Yanlış yetki filtresi gönderilse bile başka kiracının verisi o koleksiyonda yoktur.
Nasıl denetliyoruz: veritabanı katmanı için dört entegrasyon testi her sürümde koşar ve yeşil olmak zorundadır. Yetki filtresi için otomatik bir fuzz testi gerçek motorlara karşı binlerce sorgu üretir; tek bir sızıntı sürümü durdurur. Son tam koşu 2 010 sorgu, 0 sızıntı.
Ne zaman değiştiririz: kiracı sayısı yüzleri geçerse ayrı dizinlerin işletme maliyeti büyür. O gün filtre tabanlı izolasyonu sözleşme testleriyle yeniden değerlendiririz. Bugün değil.
Diğer notlar
- "Yetersiz bilgi" kararı nasıl veriliyorArama güveni, cümle düzeyinde doğrulama ve atıf denetimi. Eşikler ve Türkçe için nasıl kalibre edildikleri.
- Türkçe arama: kök eşleme ve anlam birlikteYalnız anlam araması madde numaralarını kaçırır, yalnız kelime araması ekleri. İkisini birleştirip Türkçe üzerinde değerlendirilmiş bir modelle yeniden sıralıyoruz.