2014-11-06 310 views
0

在Zend Framework Album示例中进行扩展如何防止用户编辑其他记录?如何防止用户访问其他用户记录?

我使用的是Zend Framework 2,PHP,MYSQL和ZFC User Rbac。

当前“专辑”号码显示在网址中。如果用户登录,表格会向他们显示他们的记录(专辑)。但是,如果他们去编辑一个相册,它会在url中显示唯一的相册号码。用户然后可以更改此编辑其他专辑。防止这种情况的最好方法是什么?也是他们的一种方式,我可以/应该盐的记录ID显示在网址之前?

谢谢你的时间和意见。

马特

+0

您目前是否跟踪用户自己的哪张专辑? – thatidiotguy 2014-11-06 20:29:06

+0

我会的。在专辑表上有一个user_id – Matt 2014-11-06 20:37:01

+0

因此,当他们去查看专辑时,请检查他们是否拥有专辑。如果他们没有将他们重定向到给他们一个错误信息的页面。 – thatidiotguy 2014-11-06 20:37:50

回答

1

下面是一些伪代码,试图说明我所谈论的意见。

$albumId = /*however you retrieve parameters*/; 
$album = /*however you get album*/ 
$user = /*however you get user*/ 

if ($album->getOwner()->getId() != $user->getId()) { 
    //redirect to another page with an error message 
} 
+0

明白了,谢谢! – Matt 2014-11-06 21:34:23

+1

你也可以考虑使用Assertions,就像[本例中]一样(https://github.com/ZF-Commons/zfc-rbac/blob/master/docs/07.%20Cookbook.md#a-real-世界应用部分2 ---只 - 删除 - 你自己的帖子) – jmleroux 2014-11-07 08:58:52

相关问题