Not*_*tMe 14 security web-applications sql-server
将 Web 应用程序 (.net) 部署到生产环境时,使用集成安全性更好还是更重要?
在我看来,如果黑客破坏了 Web 服务器,这并不重要,因为他们可以轻松地冒充机器。
想法?
我认为使用 SQL 身份验证只有两个正当理由:
对于您提出的方案(Web 服务器主机完全受到威胁),没有什么可以保护您。黑客至少可以在 DB 服务器上做 Web 服务器可以做的所有事情。我想说的是,纵深防御可以教你在这种情况下最大限度地减少损失:将您的 Web 服务器使用的帐户的数据库权限减少到绝对最低要求,仅此而已。其次,确保如果 Web 服务器主机受到威胁,它不能用于提升高于 Web 服务器帐户的权限(即 WWW 主机上没有其他服务使用比 WWW 帐户更高的 DB 权限凭据)。这些是基本的安全原则,与使用的身份验证方案无关。
虽然 sql auth 与 windows auth 在您的场景中都没有明显优势,但还有其他问题需要考虑:
最后一个注意事项:TDS 协议通过流量以明文形式公开 sql auth 密码,但这通常可以通过请求对流量进行 SSL 加密来缓解。
那么为什么你仍然看到 sql auth WWW 主机在 web.config 中以明文方式存储密码?那些是糟糕的开发人员/管理员,不要成为其中之一。
msdn.microsoft.com/en-us/library/aa378326(VS.85).aspx
technet.microsoft.com/en-us/library/ms189067.aspx
如果您不使用 SSPI,您会将用户名和密码硬编码到源文件中。
如果您将用户名和密码硬编码到源文件中,您的所有员工都可以访问它。
这是相对不安全的。心怀不满的前雇员可能会恶意使用这些信息。访问者可能会在某处的屏幕上看到代码。或者源代码可能会意外泄露。
SSPI 的优点是密码永远不会以明文形式存储在任何地方。
到目前为止,其他答案都很好,但我会提出另一个答案:管理。
迟早,您可能最终会拥有多个 SQL Server。管理应用程序和多个 SQL Server 之间的 SQL 身份验证会有点痛苦,尤其是在遇到安全问题时。如果您更改一次 Windows 身份验证密码,它会立即在您的所有服务器上更改。如果您需要轮换 SQL 身份验证密码,那就更麻烦了 - 以至于您可能根本不会这样做。这是一个安全风险。
| 归档时间: |
|
| 查看次数: |
33765 次 |
| 最近记录: |