互联网上的 SQL Server

互联网上的 SQL Server

我有一个直接连接到 SQL Server 的桌面应用程序,我看到很多帖子说你不应该将 SQL Server 直接暴露给互联网,但没有一个说明原因。一些背景信息:

  • 对于我的场景来说,可扩展性、负载平衡和其他性能标准不是问题
  • 我的应用程序需要在本地工作(使用本地 SQL Server)或使用远程存储库,以便多个用户可以共享数据(托管 SQL Server,这是我的问题)

我注意到连接到 SQL Azure 看起来很像一个标准的远程 SQL Server(http://www.windowsazure.com/en-us/develop/net/how-to-guides/sql-database/#using-sql-server

我知道打开任何端口都是固有漏洞,但这不是唯一的原因。我肯定漏掉了什么,但我不确定是什么?

除了将应用程序的下半部分部署为 Web 服务之外,还有什么真正的替代方案?

答案1

原因有很多,但最相关的原因是,没有 SQL 服务器和网络安全经验的人可能会犯一个或多个常见错误。

例如,您可以使用“sa”SQL 登录进行连接,这是默认的系统管理员帐户,可以完全控制 SQL 服务器。

或者您可能正在使用另一个具有弱密码的 SQL Server 登录,因此攻击者可以尝试暴力攻击来提升其权限。

或者您可以保留一些默认的只读用户帐户(对于此应用程序或任何其他应用程序),攻击者和漏洞脚本将主动扫描这些帐户,以便他们可以从您的数据库中检索数据。

一些好的措施可以保护自己免受最基本的远程攻击:

  • 限制与您信任的 IP 和客户端的连接
  • 尽可能使用 Windows 集成身份验证,并禁用任何使用弱密码的登录
  • 如果必须使用 SQL Server 身份验证,请重命名/禁用 sa 登录名并在所有登录名上设置强密码(>10 个字符)

相关内容