我打算制作一个硬编码的 VB.Net 应用程序,以访问远程托管在 Web 服务器上的 MS SQL 数据库。有没有办法让某人在客户端 PC 上使用一些数据包嗅探(我认为它被称为)程序以某种方式知道用于访问数据库的密码?我不需要知道它是如何完成的,我只需要知道它是否可以完成,以便我知道我的方法是否足够安全。
谢谢!
我打算制作一个硬编码的 VB.Net 应用程序,以访问远程托管在 Web 服务器上的 MS SQL 数据库。有没有办法让某人在客户端 PC 上使用一些数据包嗅探(我认为它被称为)程序以某种方式知道用于访问数据库的密码?我不需要知道它是如何完成的,我只需要知道它是否可以完成,以便我知道我的方法是否足够安全。
谢谢!
根据这篇 MSDN 文章,如果您只关心保护对数据库的登录,那么您就可以了:
客户端应用程序连接到 SQL Server 时传输的凭据(在登录数据包中)始终是加密的。
但是,如果您还关心保护数据,那么您应该阅读上述 MSDN 链接的其余部分,以了解启用 SSL 以保护数据流的其余部分。
另请注意这篇较早的文章,它对使用 ODBC 连接(而不是本机类型)提出了警告。我怀疑你会这样做,但只是想我会提到它。
从客户端机器上,您的数据库信息不太可能被嗅探。但是,如果您的应用程序“泄露”信息,那么外人就有可能获得有关您的数据库的敏感信息。例如,如果您将 CustomErrors 参数设置为“关闭”,并且您的数据库因任何原因无法访问,则用户可能会看到您的数据库地址,然后可以继续使用暴力破解或已知漏洞攻击它。还有其他方法可以泄露敏感信息,这只是一个例子。
一般来说,让您的数据库向 Internet 开放并不理想——通常建议您的数据库位于一个(或在 DMZ 的情况下为两个)防火墙之后。如果你能控制它,你应该把它移到更安全的地方。否则,即使您的应用程序没有泄露其地址,端口扫描“战争拨号器”最终也会找到它并提醒“坏人”它的存在。