Gizlilik ve Veri Güvenliği

Kasa bir ADO.NET uygulamasında 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. bir bağlantı dizesi, güvenliği sağlanmadıysa olası bir güvenlik açığı sunar. Yapılandırma dosyalarına kaydedilen Bağlan ion 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ğlan 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 geri kazanımı .NET çöp toplama ile belirleyici değildir. Verileriniz gerçekten hassassa ve StringBuilder sınıflarını kullanmaktan String kaçınmanız gerekir.

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. bir içeriğini hızlı bir şekilde okumak için bir SecureStringyöntem yokturToString. Yeni bir örneğini SecureString değer olmadan veya işaretçiyi bir nesne dizisine Char geçirerek başlatabilirsiniz. Daha sonra dizeyle çalışmak için sınıfının çeşitli yöntemlerini kullanabilirsiniz.

Ayrıca bkz.