65.9K
CodeProject 正在变化。 阅读更多。
Home

加密你的 Web.config,请

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.39/5 (17投票s)

2009年7月16日

CC (ASA 2.5)

4分钟阅读

viewsIcon

95656

downloadIcon

1185

加密你的 Web.config,请

引言

如果你在 Twitter 上关注我,你可能会注意到我不时提到 #BadVendor。实际上,当我知道他们没有在将 `string` 传递到 SQL 查询之前清理它们时,他们最近被升级为 #EpicFailVendor。不用说,每一天都比前一天更令人震惊。

大多数情况下,所有这些系统都是我无法更改的——要么是编译过的代码,要么我没有权限进入并进行修复,但我可以做一些事情——加密他们的 web.config 文件

使加密更容易

加密通常涉及登录到有问题的服务器,找到一些不太容易找到的信息,然后运行 *aspnet_regiis*。这并不是*那么*难,但也不是点击就能轻松完成的。

我想更容易地更新这些文件,而不需要每次都找到所有信息,所以我编写了一个小程序,使整个过程更容易一些。该实用程序使用您提供的凭据通过 WMI 登录到您的服务器并找到所需的信息,然后加密您的文件,而无需调出命令提示符。

我真的不是 WinForms 的爱好者,WMI *当然不是*我的专长,但这个程序很快就完成了,而且似乎相当不错。它肯定不是没有错误的,并且可以使用一轮重构使其更好,因此任何**反馈都将不胜感激**。

工作原理

第一步是提供您要登录的服务器的凭据。如果您选择在实际服务器上运行该工具,则可以将所有这些字段留空(因为 WMI 不会将它们用于本地连接)。如果您不是该服务器的管理员,或者至少没有具有某些提升的凭据的帐户,那么这可能不适合您。

nkript.screen1

成功连接到服务器后,服务器上的站点列表将与任何虚拟目录一起加载(因为它们可能包含 *web.config* 文件)。此时,您可以简单地浏览并找到您要加密的 *web.config*。

nkript.screen2

值得注意的是,如果在目录中没有找到任何 *web.config* (专门针对该名称),则不会列出它。如果您恰好有命名为 *web.temp.config* 的文件,则它不会显示在此列表中。

此时,程序将执行一些**痛苦的** WMI 魔法,连接到您的服务器并将 *web.config* 文件加载到视图中。将解析 *config* 文件,并且所有根节点都将被列为可加密的。

nkript.screen3

显然 关于什么可以或不可以加密有一些规则,因此如果实际的 `aspnet_regiis` 调用失败,您最终将得到与之前相同的文件,但您不会得到关于原因的明确消息(仍然试图找出我如何在半可靠的 WMI 方式中访问此类消息)。

此应用程序没有太多配置。默认设置用于执行 *web.config* 文件的加密和解密,因此如果您想添加一些功能,欢迎您添加它们。我很乐意听到您的更改,以便我可以将它们添加到此版本中。

2gmLEwHP/vZ/NYLeiTattLFnylc= *

加密您的 *web.config* 文件并保护您的敏感信息并不难。命令行工具 *aspnet_regiis* 提供了许多强大的功能来进一步保护您的数据。希望这个工具可以让你更快地完成你的工作 (*上面的东西是 SHA1.ComputeHash(”*I <3 Encryption") 作为 Base64 字符串*)。

现在,如果可以的话,我需要与 #EpicFailVendor 分享这个工具。我不知道你们其他人怎么想,但是 够了!我已经受够了这些猴子打架的供应商不加密他们周一到周五的 web.configs!

强制性免责声明:该程序已通过“在我的机器上工作”认证 – 作者不对其在您的环境中的行为方式做出任何保证(但很可能您无需担心)。

下载次数

使用这些链接获取最新版本

© . All rights reserved.