如何加密web.config文件中的连接字符串部分?
ghhaqwfi1#
要保存访问外部链接,请在C:\Windows\Microsoft.NET\Framework\v4.0.30319(适用于.NET 4 / 4.5)中
aspnet_regiis.exe -pe "connectionStrings" -app "/YourWebSiteName" -prov "DataProtectionConfigurationProvider"
字符串要使用此工具解密connectionStrings节,您可以在aspnet_iisreg. exe工具中指定以下命令。
aspnet_regiis.exe -pd "connectionStrings" -app "/YouWebSiteName"
型
yhived7q2#
Rahul,将字符串从ASCII转换为base64字符串并不是加密,这是你的第一个链接建议的。我们可以很容易地将base64转换为ASCII。将configsection.protectSection()与RSA密钥一起使用是一种正确的加密方法,适用于Web.config文件的各个部分。检查此链接:http://www.beansoftware.com/ASP.NET-Tutorials/Encrypting-Connection-String.aspx请注意,我们不能加密Web.config文件在共享托管环境中的信任级别设置为中等信任。
fxnxkyjh3#
使用aspnet_regiis.exe http://msdn.microsoft.com/en-us/library/zhhddkxy.aspxhttp://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.protectsection.aspx的
4ngedf3f4#
在命令中运行:aspnet_regiis.exe -pef“connectionStrings”“pathToWebConfig”或者,如果您希望它以编程方式运行,您可以创建一个Process:
string fileName = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"; if (8 == IntPtr.Size || (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432")))) fileName = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe"; string arguments = $"-pef \"connectionStrings\" \"{application.Path}\""; using (Process process = new Process()) { process.EnableRaisingEvents = true; process.StartInfo = new ProcessStartInfo { FileName = exeName, Arguments = arguments, UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, CreateNoWindow = true }; process.Start(); processOutput.Output = process.StandardOutput.ReadToEnd(); bool exited = process.WaitForExit(timeoutMilliseconds); if (exited) { processOutput.ExitCode = process.ExitCode; } }
字符串
gblwokeq5#
加密对于为应用程序给予安全性很有用。请按照以下步骤加密web. config。1.以管理员权限打开命令提示符1.在命令提示下,输入
<httpProtocol> <customHeaders> <add name="x-Frame-Option" value="Deny or SEMEORGIN" /> <remove name="Server" /> <remove name="X-AspNet-Version" /> <remove name="X-AspNetMvc-Version" /> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol>
2sbarzqh6#
我用源代码在windows窗体中创建了一个实用程序。从这里下载文件(它的整个项目,你可以从bin文件夹运行它):File1.从debug文件夹运行可执行文件(以管理员身份运行)1.浏览配置文件1.你完了
**注意:**检查您的计算机中是否存在此文件夹:
C:\Windows\Microsoft.NET\Framework\v4.0.30319 这里是一个什么文件有Check Gist Here偷偷
yr9zkbsy7#
ASPNET_REGIIS,正如其他人所说。但是请记住,当考虑编码的强度和要求时,RSA并不是万无一失的,甚至不是很强。打破它需要几分钟。我的情况是,我必须使用SQL服务器身份验证连接到其中一个SQL服务器,这反过来又要求在连接字符串中以纯文本形式写入密码。文件中的纯文本密码是错误的。更好的RSA编码。因此,当有人看它,并不真的想闯入它,他没有看到密码。然而,它位于只能从域内访问的服务器上,这将可能的攻击者限制在100以下,其他任何人都必须首先闯入域,如果发生这种情况,连接到测试环境DB服务器是最小的问题。此外,在这100人中,只有大约5人具有管理员权限,这给予了使用ASPNET_REGIIS完全解密文件的权限。你无论如何都要相信他们。对于所有其他人来说,他们可以获得的数据的价值远远低于他们必须投入的工作。也不值得冒着不再是雇员的风险。而且,他们大多数人甚至不知道这东西是可以闯入的。而现在,即使他们以某种方式发现了,他们不会得到一个纯文本密码没有任何工作。
5fjcxozz8#
如果您没有访问命令提示符,这是一个常见的情况,大多数网站所有者谁托管他们的网站与第三方托管提供商。你可参阅以下文章─https://www.dbdocs.net/asp/encrypt-the-connection-string-in-asp-net-web-config此方法是通用的,允许您在本地系统和Web服务器环境中使用它,在这些环境中,您可能无法以管理员权限直接访问命令提示符。
8条答案
按热度按时间ghhaqwfi1#
要保存访问外部链接,请在C:\Windows\Microsoft.NET\Framework\v4.0.30319(适用于.NET 4 / 4.5)中
字符串
要使用此工具解密connectionStrings节,您可以在aspnet_iisreg. exe工具中指定以下命令。
型
yhived7q2#
Rahul,将字符串从ASCII转换为base64字符串并不是加密,这是你的第一个链接建议的。我们可以很容易地将base64转换为ASCII。
将configsection.protectSection()与RSA密钥一起使用是一种正确的加密方法,适用于Web.config文件的各个部分。
检查此链接:http://www.beansoftware.com/ASP.NET-Tutorials/Encrypting-Connection-String.aspx
请注意,我们不能加密Web.config文件在共享托管环境中的信任级别设置为中等信任。
fxnxkyjh3#
使用aspnet_regiis.exe http://msdn.microsoft.com/en-us/library/zhhddkxy.aspx
http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.protectsection.aspx的
4ngedf3f4#
在命令中运行:aspnet_regiis.exe -pef“connectionStrings”“pathToWebConfig”
或者,如果您希望它以编程方式运行,您可以创建一个Process:
字符串
gblwokeq5#
加密对于为应用程序给予安全性很有用。请按照以下步骤加密web. config。
1.以管理员权限打开命令提示符
1.在命令提示下,输入
1.如果您的web Config位于“D:\Articles\EncryptWebConfig”目录路径中,则输入以下内容以加密ConnectionString:
为了更安全,我用了别的东西。在我的Web.config中,我添加了以下代码。
字符串
2sbarzqh6#
我用源代码在windows窗体中创建了一个实用程序。
从这里下载文件(它的整个项目,你可以从bin文件夹运行它):File
1.从debug文件夹运行可执行文件(以管理员身份运行)
1.浏览配置文件
1.你完了
**注意:**检查您的计算机中是否存在此文件夹:
C:\Windows\Microsoft.NET\Framework\v4.0.30319
这里是一个什么文件有Check Gist Here偷偷
yr9zkbsy7#
ASPNET_REGIIS,正如其他人所说。
但是请记住,当考虑编码的强度和要求时,RSA并不是万无一失的,甚至不是很强。打破它需要几分钟。
我的情况是,我必须使用SQL服务器身份验证连接到其中一个SQL服务器,这反过来又要求在连接字符串中以纯文本形式写入密码。
文件中的纯文本密码是错误的。更好的RSA编码。因此,当有人看它,并不真的想闯入它,他没有看到密码。
然而,它位于只能从域内访问的服务器上,这将可能的攻击者限制在100以下,其他任何人都必须首先闯入域,如果发生这种情况,连接到测试环境DB服务器是最小的问题。此外,在这100人中,只有大约5人具有管理员权限,这给予了使用ASPNET_REGIIS完全解密文件的权限。
你无论如何都要相信他们。对于所有其他人来说,他们可以获得的数据的价值远远低于他们必须投入的工作。也不值得冒着不再是雇员的风险。
而且,他们大多数人甚至不知道这东西是可以闯入的。而现在,即使他们以某种方式发现了,他们不会得到一个纯文本密码没有任何工作。
5fjcxozz8#
如果您没有访问命令提示符,这是一个常见的情况,大多数网站所有者谁托管他们的网站与第三方托管提供商。你可参阅以下文章─
https://www.dbdocs.net/asp/encrypt-the-connection-string-in-asp-net-web-config
此方法是通用的,允许您在本地系统和Web服务器环境中使用它,在这些环境中,您可能无法以管理员权限直接访问命令提示符。