Authorization · Yetkilendirme
Ownership, BOLA/IDOR ve tenant izolasyonu
Başkasının ID’sini göndererek veri elde etmeyi sunucuda önle.
Kavramı anlayalım
BOLA, object düzeyindeki yetki eksikliğidir; IDOR bu sorunun doğrudan nesne referanslarıyla görülen tanıdık biçimidir. /cv/42 adresini /cv/43 yapmak yalnız bir URL değişikliğidir; API doğru ownership denetimi yapmıyorsa başka kişinin verisi açılabilir. UUID kullanımı güvenlik denetimini gereksiz yapmaz.
Tenant kimliğini doğrulanmış bağlamdan çıkar. Client’ın header veya JSON içinde gönderdiği tenantId’ye kör güvenme. Sorguda hem kaynak ID’si hem izin kapsamı bulunabilir; sonrasında işlem bazlı policy uygulanır. Güncellemede ownership alanını değiştirmek, nested kaynakları başka tenant’a bağlamak ve toplu export yapmak ayrıca korunmalıdır. Mass assignment izinli alanları tek tek seçmeyen update tasarımlarında risk doğurur.
Dosya ve galeri URL’leri de kaynak erişimidir. Herkese açık storage linki, API’deki iyi yetkiyi boşa çıkarabilir. Background job, cache key ve signed URL sürelerini tenant kapsamıyla değerlendir. 404 ile varlığı gizleme politikası tutarlı uygulanabilir; fakat logda audit için gerçek sebep kontrollü tutulur. Testte aynı kullanıcıya ait, başka kullanıcıya ait, başka tenant’a ait ve bulunmayan ID’leri ayrı dene.
Çok kiracılı SaaS, CV ve özel dosya erişiminde.
UUID, storage URL veya tenant header’ını tek başına güvenlik kabul etmek.
Aynı konu. Üç farklı derinlik.
WHERE Id = @id AND TenantId = @verifiedTenantYetki bağlamından gelen tenant ile kapsamlı sorgu.
Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.
Önce kendin dene.
API korumalı ama dosya linki herkese açık. Yetki tamam mı?
Çözümü ve açıklamasını göster
No: protect or appropriately scope the file delivery path.Hayır; veri dosya yolu üzerinden yine açılabilir.