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. bağlantı dizesi, güvenlik altına alınmamışsa 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. Derlenmiş bir derlemede ortak ara dili (CIL) görüntülemek için kaynak kodunuzda katıştırılmış bağlantı dizeleri Ildasm.exe (IL Disassembler) kullanılarak okunabilir.

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.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

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 çıkarılmasını önlemek için, şirket içi veri kaynakları için Windows kimlik doğrulaması (bazen tümleşik güvenlik olarak da adlandırılır) kullanmanızı öneririz. (Ancak, Azure SQL'e bağlanırkenAzure kaynakları için Yönetilen Kimlikler.) 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.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Bu yordamda açıklanan kimlik doğrulama akışı, uygulamada çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca yönetilen kimlikler gibi diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.

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ı bir kaynağıdır ve .NET Framework kullanılarak güvenli hale getirilemez veya şifrelenemez.

Bağlantı Dizesi Oluşturucuları ile Ekleme Saldırılarından Kaçının

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ğlantı Dizesi Oluşturucuları.

Persist Security Info=False komutunu kullanma

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 Info true 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ğlantı dizeleri genellikle bir Windows uygulaması için app.config dosyasındaki connectionStrings> öğesinde veya ASP.NET bir uygulamanın web.config dosyasında depolanır<. Yapılandırma dosyalarından bağlantı dizesi depolama, alma ve şifreleme ile ilgili temel bilgiler için bkz. Bağlantı Dizeleri ve Yapılandırma Dosyaları.

Ayrıca bkz.