Ana içeriğe atla

Sunucu Tarafında Kiracı Seçiminin Güvenliğinin Sağlanması

 tenant2 kullanıcısı ile oturum açıp düzenleme formunu açtığınızda, Kiracı seçimi açılır menüsü görünmez, dolayısıyla sıradan bir kullanıcı ise kiracısını ön uçtan değiştiremez . Ancak Serenity ve hizmetlerinin nasıl çalıştığına dair biraz bilgisi varsa arka uca API isteği gönderebilir.

Web ile çalışırken, hem istemci hem de sunucu tarafında doğrulama işlemleri yapmadığınız sürece web uygulamalarında güvenlik açıkları oluşturmak kolaydır.

Hadi gösterelim. tenant2 kullanıcısı ile oturum açtığınızda Chrome konsolunu açın .

Bunu kopyalayıp konsola yapıştırın:

Q.serviceCall({ 
    service: 'Administration/User/Update', 
    request: { 
        EntityId: 2, 
        Entity: { 
            UserId: 2, 
            TenantId: 1 
        }
    }
});

Şimdi kullanıcı yönetimi sayfasını yenileyin, kiracı2'nin artık yönetici kullanıcıyı görebildiğini göreceksiniz !

Javascript ile Kullanıcı Güncelleme hizmetini çağırdık ve tenant2 kullanıcısı TenaNntId'yi 1 (Birincil Kiracı) olarak değiştirdik .

Önce İkinci Kiracıya (2) geri döndürelim , sonra bu güvenlik açığını düzelteceğiz:

Q.serviceCall({ 
    service: 'Administration/User/Update', 
    request: { 
        EntityId: 2, 
        Entity: { 
            UserId: 2, 
            TenantId: 2 
        }
    }
});

Serenity, alan düzeyinde izinler sağlar. Yönetim:Tenants iznine sahip kullanıcıların kiracı bilgilerini görmesine ve düzenlemesine izin vermek için UserRow.cs'yi düzenleyin .

[LookupEditor(typeof(TenantRow))]
[ReadPermission(PermissionKeys.Tenants)]
public int? TenantId
{
    get => Fields.TenantId[this];
    set => Fields.TenantId[this] = value;
}

Artık kullanıcılar için kiracı alanını yalnızca yönetici görebilir ve güncelleyebilir .

Ayrıca ModifyPermission'ı bir kullanıcının okuma izni yokmuş gibi, varsayılan olarak yazma izni yokmuş gibi ayarlamamız gerekmedi .

Projenizi oluşturun ve ardından bunu konsola tekrar yazmayı deneyin:

Q.serviceCall({ 
    service: 'Administration/User/Update', 
    request: { 
        EntityId: 2, 
        Entity: { 
            UserId: 2, 
            TenantId: 1 
        }
    }
});

Şimdi bu hatayı alacaksınız:

Tenant field is read only!

Bu blogdaki popüler yayınlar

Code generetor ile oluşturulan dosyaların açıklamaları

  1. Sunum (Presentation/UI) Katmanı (Kullanıcı arayüzü - HTML, TypeScript, Dialog, Grid) 🔹 XYZPage.ts 📌 Ne İşe Yarar? Kullanıcı arayüzünün TypeScript tarafındaki tanımıdır. Serenity'nin Dialog ve Grid bileşenlerini içeren bir TypeScript sınıfıdır. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kullanıcıdan veri almak ve göstermek için kullanılır. 🔹 XYZGrid.ts 📌 Ne İşe Yarar? Tablo (Grid) yapısını oluşturur ve verileri listeler. Filtreleme, sıralama ve sayfalama işlemleri için kullanılır. columnsKey ile hangi kolonların gösterileceğini belirler. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kullanıcının verileri listelediği ve etkileşimde bulunduğu yerdir. 🔹 XYZDialog.ts 📌 Ne İşe Yarar? CRUD (Create, Read, Update, Delete) işlemlerini yöneten pencere (modal) bileşeni Kullanıcı form aracılığıyla veri ekler, günceller veya siler. XYZForm.cs ile birlikte çalışır. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kull...

Serenity Web Nedir?

   Serenity  , açık kaynak teknolojileri üzerine kurulu bir ASP.NET Core/TypeScript uygulama platformudur. Standart kodlardan kaçınarak, tekrarlanan görevlere harcanan zamanı azaltarak ve en iyi yazılım tasarımı uygulamalarını uygulayarak bakım maliyetlerini düşürürken geliştirmeyi kolaylaştırmayı amaçlamaktadır. Serene  , Serenity platformunu temel alan ücretsiz, açık kaynaklı başlangıç ​​uygulama şablonumuzdur.  Bu dokümantasyon aracılığıyla eğitimimiz ve diğer örnekler için esas olarak Serene'yi kullanacağız. StartSharp  , ücretli müşterilerimize sunduğumuz premium uygulama şablonudur.  Daha gösterişli bir temaya ve bazı ekstra özelliklere  ek olarak Serene'deki her şeyi içerir  .  İkisi de Serenity platformunu temel alıyor. Adında Ne Var Serenity'nin sözlük anlamları  barış  ,  rahatlık  ve  sakinliktir  . Serenity ile bunu başarmaya çalışıyoruz.  Umarız yükledikten ve kullandıktan sonra siz de bu ş...