这是一个理论问题,我是SQL中的一个菜鸟,我真的没有多少经验。
首先,假设你必须为那些需要某些信息的消费者制作一个程序,这些信息来自不在本地机器中的数据库,比如说,通过互联网上的某个地方。是否可以安全地直接连接到数据库,并进行一些查询?
最令人担忧的是,我想,你正在向数据库公开用户和密码,这些用户和密码可能被截获,在程序中以及所有这些,使其对恶意查询开放。这可以通过应用程序和数据库之间的良好加密来解决吗?
本能地,我认为更好的方法是创建一个服务器应用程序来进行查询,验证信息,处理敏感信息,并使应用程序连接。
这是对的吗?
答案 0 :(得分:1)
“本能地,我认为更好的方法是制作一个服务器应用程序来进行查询,验证信息,处理敏感信息,并使应用程序连接起来。”
你是对的。如果您需要最低限度的安全性,则不建议在消息中清楚地传递查询而不建议使用网络。你刚刚提到了解决方案,主要的困难就是像你说的那样“验证信息”。有时可能会非常困难,具体取决于您想要的安全级别。
也许你应该首先看一下SQL注入:http://en.wikipedia.org/wiki/SQL_injection
答案 1 :(得分:1)
是的,你应该提供一些保护。
如果要保护登录,请使用TLS。如果可能,还要部署客户端身份验证以建立TLS连接,密码通常不是很安全。您当然也可以使用客户端身份验证和密码验证(通过TLS)。
如果您不希望客户完全控制,请使用服务器应用程序。请注意,客户端应用程序完全控制客户端,因此如果您不保护服务器端,则可以轻松下载或删除整个数据库。