【发布时间】:2012-08-31 11:31:57
【问题描述】:
在 .NET 4.0 网站中,哪些 web.config 部分可以加密? 我读到并非所有部分都可以加密,但我找不到任何详细说明哪些部分可以加密的信息。
【问题讨论】:
标签: c# asp.net vb.net visual-studio web-config
在 .NET 4.0 网站中,哪些 web.config 部分可以加密? 我读到并非所有部分都可以加密,但我找不到任何详细说明哪些部分可以加密的信息。
【问题讨论】:
标签: c# asp.net vb.net visual-studio web-config
从MSDN docs 可以看出,可以使用带有–pe 选项和名称的Aspnet_regiis.exe 工具对web.config 部分进行加密和解密配置元素的 被加密,只要该部分不是这些之一:
以下是列表 无法使用 protected 加密的配置部分 配置:processModel、运行时、mscorlib、启动、 system.runtime.remoting、configProtectedData、satelliteassemblies、 cryptographySettings、cryptoNameMapping 和 cryptoClasses。它是 建议您使用其他加密敏感的方式 信息,例如 ASP.NET Set Registry 控制台应用程序 (Aspnet_setreg.exe) 工具,用于保护这些敏感信息 配置部分。
这是加密所有其他可能部分所需的:
Encrypting and Decrypting Configuration Sections
Walkthrough: Encrypting Configuration Information Using Protected Configuration
【讨论】:
加密
在命令提示符下转到以下目录 C:\Windows\Microsoft.NET\Framework\v4.0.30319>
aspnet_regiis -pe "connectionStrings" -app "/ShopAPI"
aspnet_regiis -pd "connectionStrings" -app "/ShopAPI"
【讨论】:
Web.config 等配置文件通常用于保存敏感信息,包括用户名、密码、数据库连接字符串和加密密钥。这就是为什么我们应该始终以加密形式保存这些敏感部分。
可以加密的部分:
<appSettings>
<connectionStrings> <identity> <sessionState>无法加密的部分:
<processModel><runtime><mscorlib><startup><system.runtime.remoting><configProtectedData><satelliteassemblies><cryptographySettings> <cryptoNameMapping>记住:加密和解密数据会产生性能开销。 要将此开销降至最低,请仅加密您的部分 存储敏感数据的配置文件。
【讨论】: