Aracılığıyla paylaş


Gizlilik ve Veri Güvenliği

ADO.NET bir uygulamada hassas bilgilerin korunması ve yönetilmesi, bunları oluşturmak için kullanılan temel ürünlere ve teknolojilere bağlıdır. ADO.NET, verilerin güvenliğini sağlamaya veya şifrelemeye yönelik hizmetleri doğrudan sağlamaz.

Şifreleme ve Karma Kodlar

.NET Framework System.Security.Cryptography ad alanı içindeki sınıflar, verilerin yetkisiz üçüncü taraflar tarafından okunmasını veya değiştirilmesini önlemek için ADO.NET uygulamalarınızdan kullanılabilir. Bazı sınıflar yönetilmeyen Microsoft CryptoAPI için sarmalayıcı, diğerleri ise yönetilen uygulamalardır. Şifreleme Hizmetleri konusu .NET Framework'te şifrelemeye genel bir bakış sağlar, şifrelemenin nasıl uygulandığını ve belirli şifreleme görevlerini nasıl gerçekleştirebileceğinizi açıklar.

Verilerin şifrelenmesine ve ardından şifresinin çözülmesine olanak tanıyan şifrelemeden farklı olarak, karma veriler tek yönlü bir işlemdir. Karma veriler, verilerin değiştirilmediğini denetleyerek kurcalanmasını önlemek istediğinizde yararlıdır: aynı giriş dizeleri verildiğinde karma algoritmaları her zaman kolayca karşılaştırılabilir özdeş kısa çıkış değerleri üretir. Karma Kodlarla Veri Bütünlüğünün Sağlanması , karma değerleri nasıl oluşturabileceğinizi ve doğrulayabileceğinizi açıklar.

Yapılandırma Dosyalarını Şifreleme

Bir uygulamanın güvenliğini sağlamak için veri kaynağınıza erişimi korumak en önemli hedeflerden biridir. Bağlantı dizesi güvenli değilse olası bir güvenlik açığı sunar. Yapılandırma dosyalarına kaydedilen bağlantı dizeleri, .NET Framework'ün ortak bir öğe kümesi tanımladığı standart XML dosyalarında depolanır. Korumalı yapılandırma, bir yapılandırma dosyasındaki hassas bilgileri şifrelemenizi sağlar. Öncelikli olarak ASP.NET uygulamalar için tasarlanmış olsa da korumalı yapılandırma, Windows uygulamalarında yapılandırma dosyası bölümlerini şifrelemek için de kullanılabilir. Daha fazla bilgi için bkz. Bağlantı Bilgilerini Koruma.

Bellekteki Dize Değerlerinin Güvenliğini Sağlama

Bir String nesne parola, kredi kartı numarası veya kişisel veriler gibi hassas bilgiler içeriyorsa, uygulama verileri bilgisayar belleğinden semediğinden bilgilerin kullanıldıktan sonra ortaya çıkarılma riski vardır.

A String sabittir; değeri oluşturulduktan sonra değiştirilemez. Dize değerini değiştirmek için görünen değişiklikler aslında bellekte bir nesnenin yeni bir String örneğini oluşturur ve verileri düz metin olarak depolar. Ayrıca, dize örneklerinin bellekten ne zaman silineceğini tahmin etmek mümkün değildir. Dizelerle bellek yeniden kazanımı, .NET çöp toplama ile kesin değildir. Verileriniz gerçekten hassassa String ve StringBuilder sınıflarını kullanmaktan kaçınmalısınız.

sınıfı, SecureString bellekteki Veri Koruma API'sini (DPAPI) kullanarak metin şifrelemek için yöntemler sağlar. Artık gerekli olmadığında dize bellekten silinir. ToString içeriğini hızlı bir şekilde okuyacak bir SecureString yöntemi yoktur. Yeni bir SecureString örneğini, değer vermeden veya bir işaretçiyi Char nesne dizisine geçirerek başlatabilirsiniz. Daha sonra sınıfın çeşitli yöntemlerini kullanarak dize üzerinde çalışabilirsiniz.

Ayrıca bakınız