我有一个桌面应用程序直接连接到SQL Server,我看到很多post说你不应该直接向互联网公开SQL Server,但没有人说为什么。 一些背景:
我注意到连接到SQL Azure看起来非常像一个标准的远程SQL Server( http://www.windowsazure.com/en-us/develop/net/how-to-guides/sql-database/#using-sql服务器 )
我知道打开任何端口是一个inheritance漏洞,但这不是唯一的原因。 我一定错过了一些东西,但是我不确定是什么?
除了将我的应用程序的下半部分作为Web服务部署以外,还有什么其他的select?
有几个原因,但最有意思的是,一个没有经验的SQL服务器和networking安全的人可能会犯一个或多个常见的错误。
例如,您可以使用“sa”SQLlogin进行连接,这是默认的sysadmin帐户,并且可以完全控制SQL Server。
或者,您可能正在使用另一个SQL Serverlogin密码较弱的密码,因此攻击者可以尝试进行暴力攻击以提升其权限。
或者您可能已经启用了一些默认的只读用户acocunt(对于这个或任何其他应用程序),这将被攻击者主动扫描并利用脚本,以便他们可以从数据库中检索数据。
一些很好的措施来保护自己免受最基本的远程攻击: