我正在创建一个用户将为其创建帐户的Web应用程序,允许他们在数据库上读/写数据。我即将开始创建网站的登录验证部分,这是我第一次真正做这部分。据我了解,我将创建一个用户表,该表将存储该网站的所有必要登录信息。
我知道还有数据库角色/权限。我的问题是关于2在这种情况下如何相关。我是否需要对网站和数据库中的用户进行身份验证?我的思维过程是,如果我的所有PHP脚本都设置为会话数据只允许经过身份验证的用户读/写数据库,那么我不需要在数据库端做任何事情,但我我想确保我正确地考虑这个问题。
这清楚如泥吗?
答案 0 :(得分:5)
如果我理解正确,您的问题是否有问题,您的用户需要访问您的数据库。
您的用户不会直接与数据库通信。你的应用会。您的用户只会使用您的应用程序,它将充当用户和数据库之间的接口。
因此,只有应用程序需要访问数据库(以及相应的权限)。因为它现在可以访问数据库,所以它负责确保只有合适的人才能执行某些操作。 (通过登录和许可系统)
如果并非所有用户都应在您的应用中拥有相同的权限(您可能拥有普通用户和管理员),则需要在应用中创建权限系统,以检查用户是否具有执行特定操作的相应权限。
例如,如果有人试图删除一些重要数据,那么
Symfony's page on Security提供了一些见解。只需跳过Symfony特定的部分,阅读一般概念。
答案 1 :(得分:2)
您的用户将在您的网站上进行身份验证(通过从数据库中请求有关其有效性的详细信息)。经过身份验证后,他们可以执行网站授予他们访问权限的内容。
直接与数据库通信的唯一用户是您/您的网站。您的数据库将有一个名为“users”的表,但数据库的实际用户应该是除了您之外的其他任何人 - 您不希望随机用户自由统治。然后,您可以设置希望数据库对某些用户操作执行的数据库查询。
希望有助于澄清