检查权限


Check permissions?

人们通常如何验证从数据库中提取的信息确实与活动用户有关?

例如:假设我们在用户x的收件箱中列出了一组PM——我如何确保只有用户x才能从收件箱中获取东西,而不是其他人(这将通过"黑客"地址来实现)。

很明显,我可以将活动用户名与数据库表中的内容进行比较,但我是否有一种简单的方法可以在全局范围内控制它,而不必将活动用户名和数百个不同的表进行比较来执行不同的操作?

假设您正在获取登录用户的消息,不是吗?类似于:

"SELECT * FROM `messages` WHERE `recipient` = '$loggedInUserId'"

如果是的话,我不明白这个问题。如果你不是这样做的,那就是你做错了什么。

您的应用程序可以跟踪用户会话,并确保安全性。即,当用户登录时,服务器会用会话id设置cookie,通过会话变量,您的服务器在页面请求时会知道哪个用户真正在请求什么(或者如果没有cookie,可能根本没有登录用户),因此您的应用程序可以使用会话中的用户id和请求url来确定它是否应该显示请求的内容,或者显示错误消息或重定向,因为用户正试图访问非他的内容。当然,这是一个更多的涉及,但这只是一个开始。我建议阅读php会话和cookie。

这就是数据库查询条件的作用。。。仅选择相对数据。

通常,一旦用户登录,您将从$_SESSION变量中获取他们的用户名和密码,查询数据库以确保他们是有效用户,然后使用WHERE username = '$username' 获取所需的任何信息