我们正在 DMZ 中的 Windows Server 2012 上设置一个 IIS 服务器,在域外运行。此服务器需要访问防火墙另一侧(我们域内)的 SQL Server 2005。
我们计划使用 SQL Server 身份验证来实现这一点,这意味着我们的 ASP.NET 应用程序需要知道用户 ID 和密码。在 IIS 服务器上隐藏此信息的最佳方法是什么?我们考虑将其嵌入源代码中,或将其加密并放在文件中。
但有没有更好的方法呢?
答案1
回答上述评论
最好的方法是建立可信连接。至于保护连接字符串,一种常见的方法是放入一个配置文件,将应用程序池设置为在特定的一次性强密码帐户下运行,然后只允许该帐户访问该文件。
由于您不在域中,要建立受信任的连接,您必须采用老式的方式;在两个系统上使用相同的密码创建匹配的帐户。
我还听说有人在 SQL Server 上创建安全关联(例如,通过访问共享),然后使用命名管道。但我不建议这样做,因为它非常脆弱。