Bağlantı Bilgilerini Koruma

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. Bağlantı bilgilerini düz metin olarak depolama veya bellekte kalıcı hale getirirken sisteminizin tamamını tehlikeye atmış olur. Kaynak kodunuza eklenmiş Bağlan ion dizeleri,Derlenmiş bir derlemede ortak ara dili (CIL) görüntülemek için Ildasm.exe (IL Disassembler).

bağlantı dizesi içeren güvenlik açıkları, kullanılan kimlik doğrulaması türüne, bağlantı dizesi bellekte ve diskte nasıl kalıcı hale getirildiğinden ve bunları çalışma zamanında oluşturmak için kullanılan tekniklerden kaynaklanabilir.

Windows Kimlik Doğrulaması kullan

Veri kaynağınıza erişimi sınırlamaya yardımcı olmak için kullanıcı kimliği, parola ve veri kaynağı adı gibi bağlantı bilgilerinin güvenliğini sağlamalısınız. Kullanıcı bilgilerinin açığa çıkmasına engel olmak için mümkün olan her yerde Windows kimlik doğrulamasını (bazen tümleşik güvenlik olarak adlandırılır) kullanmanızı öneririz. Windows kimlik doğrulaması, veya Trusted_Connection anahtar sözcükleri kullanılarak Integrated Security bir bağlantı dizesi belirtilir ve kullanıcı kimliği ve parola kullanma gereksinimi ortadan kaldırılır. Windows kimlik doğrulaması kullanılırken, kullanıcıların kimliği Windows tarafından doğrulanır ve Windows kullanıcılarına ve gruplarına izinler verilerek sunucu ve veritabanı kaynaklarına erişim belirlenir.

Windows kimlik doğrulamasını kullanmanın mümkün olmadığı durumlarda, kullanıcı kimlik bilgileri bağlantı dizesi kullanıma sunulduğundan fazladan bakım kullanmanız gerekir. ASP.NET bir uygulamada, bir Windows hesabını veritabanlarına ve diğer ağ kaynaklarına bağlanmak için kullanılan sabit bir kimlik olarak yapılandırabilirsiniz. Web.config dosyasındaki identity öğesinde kimliğe bürünme özelliğini etkinleştirir ve bir kullanıcı adı ve parola belirtirsiniz.

<identity impersonate="true"
        userName="MyDomain\UserAccount"
        password="*****" />

Sabit kimlik hesabı, veritabanında yalnızca gerekli izinler verilmiş düşük ayrıcalıklı bir hesap olmalıdır. Ayrıca, kullanıcı adı ve parolanın düz metinde gösterilmemesi için yapılandırma dosyasını şifrelemeniz gerekir.

Evrensel Veri Bağlantısı (UDL) dosyasında için OleDbConnection bağlantı dizesi depolamaktan kaçının. UDF'ler düz metinde depolanır ve şifrelenemez. UDL dosyası, uygulamanızın dış dosya tabanlı kaynağıdır ve .NET Framework kullanılarak güvenli hale getirilemez veya şifrelenemez.

Bağlan ion Dize Oluşturucuları ile Ekleme Saldırılarından Kaçınma

Kullanıcı girişine göre bağlantı dizesi oluşturmak için dinamik dize birleştirme kullanıldığında bağlantı dizesi ekleme saldırısı oluşabilir. Kullanıcı girişi doğrulanmazsa ve kötü amaçlı metin veya karakterlerden kaçılmazsa, saldırgan hassas verilere veya sunucudaki diğer kaynaklara erişebilir. Bu sorunu gidermek için ADO.NET 2.0, bağlantı dizesi söz dizimlerini doğrulamak ve ek parametrelerin kullanılmadığından emin olmak için yeni bağlantı dizesi oluşturucu sınıfları kullanıma sunulmuştur. Daha fazla bilgi için bkz. Bağlan ion String Builders.

Kalıcı Güvenlik Bilgilerini Kullanma=Yanlış

için Persist Security Info varsayılan değer false'tur; tüm bağlantı dizesi bu varsayılan değeri kullanmanızı öneririz. ayarı Persist Security Infotrue veya yes ayarı, kullanıcı kimliği ve parola dahil olmak üzere güvenlikle ilgili hassas bilgilerin açıldıktan sonra bir bağlantıdan alınmasına izin verir. Persist Security Info veya noolarak ayarlandığındafalse, güvenilmeyen bir kaynağın güvenlik duyarlı bilgilere erişimi olmadığından emin olmak için, güvenlik bilgileri bağlantıyı açmak için kullanıldıktan sonra atılır.

Yapılandırma Dosyalarını Şifreleme

Bağlantı dizesi yapılandırma dosyalarında da depolayabilirsiniz; bu da bunları uygulamanızın koduna ekleme gereksinimini ortadan kaldırır. Yapılandırma dosyaları, .NET Framework'ün ortak bir öğe kümesi tanımladığı standart XML dosyalarıdır. Yapılandırma dosyalarındaki Bağlan ion dizeleri genellikle <Bir Windows uygulaması için app.config dosyasındaki connectionStrings> öğesi veya bir ASP.NET uygulaması için web.config dosyası. Yapılandırma dosyalarından bağlantı dizesi depolama, alma ve şifreleme ile ilgili temel bilgiler için bkz. Bağlan ion Dizeleri ve Yapılandırma Dosyaları.

Ayrıca bkz.