Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: .NET Framework
.NET
.NET Standard
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. Bağlantı bilgilerini düz metin olarak depolama veya bellekte kalıcı hale getirirken sisteminizin tamamını tehlikeye atmış olur. Derlenmiş bir derlemede Microsoft ara dilini (MSIL) görüntülemek için kaynak kodunuza eklenmiş 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.
Windows kimlik doğrulamayı kullanma
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ı, Integrated Security veya Trusted_Connection anahtar sözcükleri kullanılarak bir bağlantı dizesinde belirtilir, bu nedenle 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ı dizesinde kullanıma sunulduğundan fazladan dikkatli olmanı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="<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.
Bağlantı dizesi oluşturucularıyla enjeksiyon 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 SQL Server için Microsoft SqlClient Veri Sağlayıcısı, 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ıfını kullanıma sunulmuştur. Daha fazla bilgi için bkz . Bağlantı Dizesi Oluşturucuları.
"Persist Security Info=false" kullanın
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 falseolarak ayarlandığındano, 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
Şunlar için geçerlidir: .NET Framework; .NET
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 windows uygulamasının <app.configconnectionStrings> öğesinde veya ASP.NET bir uygulamanın web.config dosyasında depolanır. Yapılandırma dosyalarından bağlantı dizelerini depolama, alma ve şifreleme hakkında daha fazla bilgi için bkz. Bağlantı Dizeleri ve Yapılandırma Dosyaları.
Ayrıca bakınız
- Korumalı Yapılandırma Kullanarak Yapılandırma Bilgilerini Şifreleme
- SQL Server için Microsoft ADO.NET