2014-11-06 108 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