做我的网络应用';s的用户需要直接访问我的数据库


Do my web app's users need direct access to my database?

我正在创建一个web应用程序,用户将为其创建一个帐户,该帐户允许他们读取/写入数据库上的数据。我即将开始创建网站的登录验证部分,这是我第一次真正做这部分。据我所知,我将创建一个用户表,用于存储网站的所有必要登录信息。

我知道还有数据库角色/权限。我的问题是,在这个例子中,2是如何联系的。我需要对网站和数据库上的用户进行身份验证吗?我的想法是,如果我所有的PHP脚本都是以这样一种方式设置的,即会话数据只允许经过身份验证的用户读取/写入数据库,那么我不需要在数据库端做任何事情,但我想确保我正确地考虑了这一点。

那像泥一样清澈吗?

如果我理解正确,您的问题是您的用户是否需要访问您的数据库。

您的用户不会直接与数据库通信。你的应用程序会。你的用户只会使用你的应用程序,它将充当用户和数据库之间的接口。

因此,只有应用程序需要访问数据库(以及相应的权限)。因为它现在可以访问数据库,所以它负责确保只有合适的人才能执行某些操作。(通过登录和许可系统)

如果不是所有用户都应该在你的应用程序中拥有相同的权限(你可能有普通用户和管理员),你需要在应用程序中创建一个权限系统,检查用户是否具有执行特定操作的适当权限。

例如,如果有人试图删除一些重要数据,则

  1. 确保他已登录(如果没有,则重定向到登录页面)
  2. 确保他具有适当的角色/权限(在这种情况下,他应该是管理员-如果不是,请取消操作)

Symfony的安全页面提供了一些见解。只需跳过Symfony的特定部分,阅读大致想法。

您的用户将在您的网站上进行身份验证(通过从数据库中请求有关其有效性的详细信息)。一旦通过认证,他们就可以做网站允许他们访问的事情。

唯一将直接与数据库通信的用户是您/您的网站。你的数据库会有一个名为"users"的表,但数据库的实际用户应该不是别人,而是你——你不想让随机用户自由支配。然后,您可以设置希望数据库对某些用户操作执行的数据库查询。

希望这有助于澄清