检查权限?

时间:2011-06-18 07:31:33

标签: php mysql

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

例如:假设我们在用户x的收件箱中列出了一组PM - 我如何确保只有用户x可以从收件箱中获取内容,而不是其他人(这可以通过“黑客攻击”地址来完成ofcourse)。

显然,我可以将活动用户名与数据库表中的内容进行比较,但是我没有简单的方法可以全局控制它,而不必将活动用户名与数百个不同的表进行比较以进行不同的操作吗?

3 个答案:

答案 0 :(得分:3)

据说你开始提取登录用户的消息,不是吗?类似的东西:

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

如果是这样,我不明白这个问题。如果那不是你正在做的事情,你做错了什么。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

这就是数据库查询条件的用途......只选择相关数据。

通常一旦此人登录,您将从$_SESSION个变量获取用户名和密码,查询数据库以确保他们是有效用户,然后使用WHERE username = '$username' <抓取您需要的任何内容/ p>