我正在一个新页面是 ASP.NET 而旧页面是经典 ASP 的网站上工作。作为在 Windows 环境中开发的新手,我一直在研究最新的技术,即 .NET,当关于 COM 对象的遗留问题出现时,我就像头灯中的鹿一样。
网站上的安全性令人憎恶,但我已经根据 DPAPI 机器模式,根据http://www.4guysfromrolla.com/articles/021506-1.aspx轻松加密了 web.config 文件中的 connectionStrings。我知道这种方法不是最安全的,但总比没有好,这就是 ASP.NET 页面的方法。现在,我质疑如何对经典 ASP 页面使用的连接字符串进行类似的加密。
一个复杂的因素是网站托管在我没有管理员权限甚至命令行访问权限的地方,只有 FTP。此外,我想避免管理密钥。
我的研究发现:
DPAPI 与 COM 互操作。似乎这应该已经可用,但我唯一能找到讨论这个的是 CyptoUtility (请参阅http://msdn.microsoft.com/en-us/magazine/cc163884.aspx),它没有安装在托管服务器上。
还有很多其他第三方 COM 对象,例如来自 Dalun Software http://www.dalun.com的 Crypto ,但这些也不在托管服务器上,而且他们希望我要求你做某种密钥管理。
托管服务器上有 CAPICOM,但 M$ 已弃用它,许多人报告说它不是最容易使用的。我不清楚是否可以避免使用 CAPICOM 进行密钥管理,类似于对 ASP.NET 使用 DPAPI。如果有人碰巧知道,请告诉我。
我可以在 ASP.NET 中编写一个 Web 服务,并让经典的 ASP 页面使用它来获取解密的连接字符串,然后将它们存储在应用程序变量中。我不需要使用 SSL,因为我可以使用 localhost 并且不会通过 Internet 发送任何内容。以最简单的形式,我可以基于一个简单的 XML 流实现有人称之为穷人的版本,但是,我真的希望避免任何开发,因为我很难相信经典 ASP 没有像有这样的简单解决方案对于 ASP.NET。
也许我错过了一些选择...请求建议...