我们有一个web应用程序,它由internet上的IIS web服务器和IIS通过VPN链接访问的数据库服务器组成。
问题是我们需要将connectstring存储在某个地方(显然不能在数据库中)。
我注意到加密web是可能的。使用aspnet_regiis配置连接字符串:
https://msdn.microsoft.com/en-us/library/dx0f3cf2%28v=vs.85%29.aspx谁能评论一下这有多健壮?我们不想要的是数据库从互联网上被黑客入侵。
我关心的一件事是aspnet_regiis用于解密和加密,并安装在机器本身。因此,如果机器被入侵,并且这个exe在那里,发现密码并不那么困难。
那么假设不推荐使用这种保护密码的方法,我还有什么其他选择呢?
请注意,如果它是相关的,IIS是在IIS appool DefaultAppPool帐户的上下文中运行的。
谢谢。
您没有加密您的配置文件,以防止被黑客从互联网。IIS永远不会服务*。配置文件。您可以加密配置文件,从而对服务器管理员隐藏其中的信息。
如果远程攻击者可以访问服务器并可以运行任意可执行文件,那么所有的赌注都将被取消。之后你就没法保护服务器了。
如何防止服务器被远程访问太宽泛了,无法回答,请查看OWASP的一般提示
如果可能的话,给你的应用程序池身份(在你的情况下IIS APPPOOLDefaultAppPool)访问SQL Server。
然后在连接字符串中使用集成身份验证而不是密码和用户名:
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;