我在互联网上有一个有数据的SQL数据库 我需要我的Android应用才能访问该信息 应用程序需要知道数据库的用户名和密码 它怎么知道?
如果我编入代码,任何人都可以获得它
答案 0 :(得分:3)
一般而言,数据库不应公开访问,也不应由用户应用程序直接访问,原因如下:
通常没有简单的方法来实现行级访问控制。视图和触发器只能让你到目前为止 - 通常应用程序级用户不能很好地映射到数据库用户,因为后者通常可以访问比前者更多的数据。
数据库客户端与实际的数据库架构相关联。让客户不在您的控制之下,例如, Android应用程序是一种非常好的方法,可以让您自己陷入不允许任何和未来发展的方式。
将DB端口向全世界开放不会被认为是安全的。任何潜在的安全漏洞都可以直接访问您的所有数据。 MySQL security guidelines明确警告不要将数据库端口打开到互联网。
无法保护数据库凭据或数据来自充分确定且知识渊博的用户。如果您的应用程序可以访问某些内容,那么它们也可以访问。
数据库访问协议主要是考虑到局域网,而不是互联网固有的不可靠性。即使加密和安全性通常也是事后的想法......
解决此问题的标准方法是创建一个中间Web服务,该服务具有单独的用户帐户和对数据的一组受限操作。 Web服务将允许每个用户仅访问与其相关的数据,甚至间接访问。这种方法将数据与用户应用程序层分开,允许您根据需要灵活地存储和访问数据,并为您的数据库提供额外的安全层。