这看起来真的很基础,但我还没找到答案……我们想将网站部署到 IIS 服务器,将数据库部署到单独的服务器。我们不确定如何最好地保护内部用户和互联网的访问。
IIS 服务器目前未连接到域,数据库也未连接到域。应该连接吗?此外,如果我们使用 SQL Server 身份验证而不是 Windows 身份验证,我们是否应该将用户/密码硬编码到我们的内部应用程序中?
答案1
我想这取决于您是否信任域管理员和域。如果您怀疑域管理员腐败且最有可能成为黑客攻击您的系统,您可能不想加入该域,否则,加入域应该具有安全优势,例如参与组策略。
当 SQL 和 IIS 位于不同的机器上时,通常最好的选择是 SQL 身份验证,因为设置委派比较棘手,而且许多服务器管理员不知道该怎么做。如果您能搞清楚,Windows 身份验证是首选。
如果无法避免使用密码,请尽可能对密码进行加密。
答案2
这里有几个问题:
- 问:面向公众的网站的 Web/DB 服务器是否应直接连接到您的内部网络?
A。一定不行!!
现在是 2011 年,我甚至会质疑为什么您要将网站托管在与内部用户相同的场所。除非您的场所实际上是在数据中心,然后您要确保面向互联网的盒子位于 DMZ 或完全独立的网络中。成本不是借口,市面上有许多 VPS 可能比您在内部所做的更便宜、效果更好。
2.问:如何最好地保护内部用户和互联网的访问?
A。假设您的内部用户是您的系统管理员,则仅授予您的系统管理员通过 rdp 的访问权限,阻止所有其他进出您的内部网络和面向公众的盒子的流量。如果他们的需求更复杂,请考虑为他们设置非点对点 vpn。
3.问:如果我们使用 SQL Server 身份验证而不是 Windows 身份验证,我们是否应该将用户/密码硬编码到我们的内部应用程序中?
A。这确实是一个应用程序设计选项。避免使用硬编码密码以明文形式存储连接字符串!是的,避免这种情况的最佳方法是使用 Windows 身份验证。假设您使用类似 asp.net 的东西,那么有几种方法加密 web.config即使该应用程序不支持加密。