Fark etmez nerede şifreli verilerin depolandığı konularda, nasıl şifreli.
Bir web.config dosyasındaki şifreli bölümler normalde tüm makineden ödün vermeden kırılması son derece zor olan Veri Koruma API'sı ile şifrelenir . Ayrıca benzer bir RSA anahtar kabı da kullanabilirsiniz (bunları makineden çıkarmak zor).
Şifrelenmiş dizeyi DLL'de saklamak istiyorsanız, herhalde, şifrelenmiş bir web.config'den (herkes Reflektör ile bu DLL'ye göz atabilir) daha güvenli olmasa da , değiştirmek zor ( sanırım ) derlemek gerekir). Ama yine, çok daha önemli olan, şifrelenmiş dizenin nasıl üretildiğidir; muhtemelen şifreli bir web.config için aynı sağlayıcıları kullanmıyorsunuz, o zaman ne kullanıyorsunuz?
Şifreleme düzeni yalnızca özel anahtar veya paylaşılan sır kadar güçlüdür. Bu anahtar aynı zamanda derlemenizde de depolanıyorsa, hiç şifrelemeniz de olmayabilir. Bazı harici veritabanlarında depolanıyorsa, o veritabanının bağlantı dizesinin nasıl güvenli olduğu sorusunu gündeme getirir . Bu gerçekten sadece genel olarak daha zayıf güvenliğe yol açabilir.
Öte yandan, bir servis sağlayıcıysanız ve bağlantı dizesi bir kullanıcı parolasıyla şifrelenmişse , bu statik bir makine anahtarı kullanmaktan daha güvenli olacaktır . Daha sonra, şifrelemek için kullanıcı parolaları kullanıyorsanız, kullanıcı (geliştirici değil) eylemine yanıt olarak oluşturulması ve depolanması gerektiğinden, montajınızdaki şifreli verileri sabit olarak kodlamanız pek olası değildir.
Gerçekten DLL'de (şifreli) bağlantı dizesini kodlamanın ilgili web.config bölümünü şifrelemekten daha güvenli olduğu çok fazla durum düşünemiyorum. En iyi ihtimalle sadece rahatsızlık katıyor, en kötüsü deliklerle dolu bazı beceriksizce yazılmış özel güvenliklere dayanıyor. Kendinize bir iyilik yapın ve Microsoft'un önerdiklerini yapın - orada hassas veriler varsa web.config dosyanızı şifreleyin.