Asp.net
為什麼要加密 Web 配置文件?
據我所知,web.config 文件中的任何部分都可以使用 aspnet_regiis.exe 進行加密和解密。
如果 aspnet_regiis 可以用來解密 web.config 文件,那麼加密它有什麼意義呢?是否只是為了防止密碼和敏感資訊以純文字形式儲存?如果有文件和 exe 的任何人都可以解密它,它真的可以保護敏感的配置資訊嗎?
更新
感謝所有回答有關機器密鑰的人。我問這個問題的原因是因為我們在 codeplex.com 上託管了一個開源項目。但是,我們也將此項目部署到 Windows Azure。我正在嘗試找到一種最佳方法來使敏感密碼不受原始碼控制,但在我部署到 Azure 時將它們作為我項目的一部分保持可訪問性。
目前,我正在使用 Web 配置轉換來儲存 Azure 連接字元串(以及 system.net 的 Gmail 密碼)。我創建了一個 Web.PublishToAzure.config 轉換文件,只是將該文件置於原始碼控制之外。我還發現這篇文章可能是一個更好的選擇。再次感謝。
歷史上,瀏覽器或網路伺服器軟體中存在漏洞,允許使用者查看伺服器硬碟上的任何文件。在這種情況下,加密的 web.config 文件可能會有一些用處。但是,如果 Web 伺服器已被入侵,允許遠端訪問伺服器本身,那麼擁有加密的 web.config 文件將是您最不必擔心的事情。
我的理解是 aspnet_regiis.exe 使用機器特定的密鑰作為“鹽”
如果你在一台機器上加密一個部分,然後將配置帶到另一台機器上並嘗試解密它,它將無法工作。