为每个人开放一个数据库端口是一个好主意吗?

为每个人开放一个数据库端口是一个好主意吗?

好的,我对服务器方面完全不熟悉,但是我有一个运行 MySql 的 VPS。

我想用 Python 创建一个移动应用程序,但我需要访问一个可供所有人使用的数据库。

所以现在我考虑在我的 VPS 上打开端口 3006,这样我们就可以从 python 应用程序访问数据库。但这似乎不是一个好的做法。

有什么建议吗?

答案1

不要将你的数据库公开。数据库中的一个错误或弱密码就可能被人删除/窃取/更改所有内容。

您的移动应用不应直接访问数据库,而应访问 API,在您的情况下,该 API 可能用 Python 编写,位于 Nginx 后面。您的 API 调用需要经过身份验证以避免滥用,并且最好限制速率以避免 DDOS 攻击。

答案2

为每个人开放一个数据库端口是个好主意吗?
......这感觉不是一个好的做法。

不是的。

当然,访问控制和安全是那里的大问题。

从应用程序设计的角度来看:当数据库和应用程序之间存在显著的延迟时,大多数与数据库相关的事物都会惨遭失败。

这就是为什么大多数手机应用程序都设计为连接 API 的原因之一。

答案3

非常糟糕的想法。反编译应用程序非常容易。然后任何人都可以访问您的数据库。假设应用程序每次安装都使用相同的登录名,那么您将面临大量数据泄露。即使您为应用程序的每个用户使用不同的登录名,您也需要非常艰巨的任务来在行级别上设置正确的表权限,我认为这根本不可能。

建立一个可以进行所有通信的 API 更加容易和正确

答案4

最近,MySQL 上出现了绕过身份验证的漏洞,攻击者可以利用该漏洞访问和修改/删除所有数据。因此,我强烈建议不要公开暴露数据库服务器!

如果仅用于维护,请使用 SSH 隧道,例如ssh -L 3306:127.0.0.1:3306 [email protected]

如果您确实需要从互联网上访问它,请限制对您正在访问的服务器的 IP 的访问(并在数据库服务器配置中启用 SSL)。

相关内容