ASP.NET Core güvenlik konuları
ASP.NET Core, geliştiricilerin güvenliği yapılandırmasına ve yönetmesine olanak sağlar. Aşağıdaki listede güvenlik konularına bağlantılar sağlanır:
- Kimlik Doğrulaması
- Yetkilendirme
- Veri koruma
- HTTPS zorlama
- Geliştirmede uygulama gizli anahtarlarının güvenli bir şekilde depolanması
- XSRF/CSRF önleme
- Çıkış Noktaları Arası Kaynak Paylaşımı (CORS)
- Siteler Arası Betik Oluşturma (XSS) saldırıları
Bu güvenlik özellikleri, güçlü ve güvenli ASP.NET Core uygulamaları oluşturmanıza olanak sağlar.
Bu Blazor düğümdeki yönergeleri ekleyen veya yerine geçen güvenlik kapsamı için bkz. ASP.NET Çekirdek Blazor kimlik doğrulaması ve yetkilendirmesi ve 's Security and Identity node'daki Blazordiğer makaleler.
ASP.NET Core güvenlik özellikleri
ASP.NET Core, yerleşik identity sağlayıcılar ve Facebook, Twitter ve LinkedIn gibi üçüncü taraf identity hizmetler gibi ASP.NET Core uygulamalarının güvenliğini sağlamak için birçok araç ve kitaplık sağlar. ASP.NET Core, uygulama gizli dizilerini depolamak için çeşitli yaklaşımlar sağlar.
Kimlik Doğrulaması ve Yetkilendirme
Kimlik doğrulaması, bir kullanıcının bir işletim sisteminde, veritabanında, uygulamada veya kaynakta depolanmış bilgilerle karşılaştırılan kimlik bilgilerini sağladığı bir işlemdir. Eşleşme olursa, kullanıcılar başarıyla kimlik doğrulaması yapar ve yetkilendirme işlemi sırasında yetkilendirildikleri eylemleri gerçekleştirebilir. Yetkilendirme, kullanıcının ne yapmaya izni olduğunu belirleyen işlemi ifade eder.
Kimlik doğrulamasını düşünmenin başka bir yolu, bunu bir sunucu, veritabanı, uygulama veya kaynak gibi bir alana girmenin bir yolu olarak düşünmektir; yetkilendirme ise kullanıcının o alan içindeki hangi nesnelere (sunucu, veritabanı veya uygulama) hangi eylemleri gerçekleştirebileceği bilgisidir.
Yazılımdaki Yaygın Güvenlik Açıkları
ASP.NET Core ve EF, uygulamalarınızın güvenliğini sağlamaya ve güvenlik ihlallerini önlemeye yardımcı olan özellikler içerir. Aşağıdaki bağlantı listesi, sizi web uygulamalarındaki en yaygın güvenlik açıklarını önleme tekniklerini ayrıntılandıran belgelere yönlendirir:
- Siteler Arası Betik Oluşturma (XSS) saldırıları
- SQL ekleme saldırıları
- Siteler Arası İstek Sahteciliği (XSRF/CSRF) saldırıları
- Açık yeniden yönlendirme saldırıları
Bilmeniz gereken daha fazla güvenlik açığı vardır. Daha fazla bilgi için içindekiler tablosunun Güvenlik ve Identity bölümündeki diğer makalelere bakın.
Güvenli kimlik doğrulama akışları
En güvenli güvenli kimlik doğrulama seçeneğini kullanmanızı öneririz. Azure hizmetleri için en güvenli kimlik doğrulaması yönetilen kimliklerdir.
Kaynak Sahibi Parola Kimlik Bilgileri Vermekten kaçının, çünkü bunun nedeni:
- Kullanıcının parolasını istemciye gösterir.
- Önemli bir güvenlik riskidir.
- Yalnızca diğer kimlik doğrulama akışları mümkün olmadığında kullanılmalıdır.
Yönetilen kimlikler, kimlik bilgilerini kodda, ortam değişkenlerinde veya yapılandırma dosyalarında depolamaya gerek kalmadan hizmetlerde kimlik doğrulaması yapmak için güvenli bir yoldur. Yönetilen kimlikler Azure hizmetleri için kullanılabilir ve Azure SQL, Azure Depolama ve diğer Azure hizmetleriyle kullanılabilir:
- Azure SQL için Microsoft Entra'da yönetilen kimlikler
- App Service ve Azure İşlevleri için yönetilen kimlikler
- Güvenli kimlik doğrulama akışları
Uygulama bir test sunucusuna dağıtıldığında, bağlantı dizesi bir test veritabanı sunucusuna ayarlamak için bir ortam değişkeni kullanılabilir. Daha fazla bilgi için bkz. Yapılandırma. Ortam değişkenleri genellikle düz, şifrelenmemiş metinde depolanır. Makine veya işlemin güvenliği ihlal edilirse ortam değişkenlerine güvenilmeyen taraflar tarafından erişilebilir. En güvenli yaklaşım olmadığından, üretim bağlantı dizesi depolamak için ortam değişkenlerini kullanmanızı öneririz.
Yapılandırma verisi kılavuzları:
- Parolaları veya diğer hassas verileri asla yapılandırma sağlayıcı kodunda veya düz metin yapılandırma dosyalarında saklamayın. Gizli Dizi Yöneticisi aracı geliştirmede gizli dizilerini depolamak için kullanılabilir.
- Üretim gizli dizilerini geliştirme veya test ortamlarında kullanmayın.
- Yanlışlıkla bir kaynak kod havuzuna bağlanmamaları için projenin dışındaki sırları belirtin.
Daha fazla bilgi için bkz.
- Yönetilen identity en iyi yöntem önerileri
- Kodunuzda kimlik bilgilerini işlemeden uygulamanızdan kaynaklara bağlanma
- Diğer hizmetlere erişmek için yönetilen kimlikleri kullanabilen Azure hizmetleri
- IETF OAuth 2.0 Güvenliği en iyi güncel uygulama
Diğer bulut sağlayıcıları hakkında bilgi için bkz:
- AWS (Amazon Web Services): AWS Anahtar Yönetim Merkezi (KMS)
- Google Cloud Anahtar Yönetim Merkezi genel bakış
Ek kaynaklar
ASP.NET Core