2013-04-17 32 views
0

在多用戶的應用我有我的瀏覽index.phtml:Zend拒絕訪問更改的url參數最佳實踐?

<a href="<?php echo $this->url(array("module" => "myModule", "controller" 
=>"myController","action" => "edit", "id" => $objThings->thingsid), 
'default', TRUE)?> 

點擊這個鏈接會導致網址:

http://website/mymodule/mycontroller/edit/id/228 

,其中用戶可編輯的記錄。

登錄後,用戶可以複製此URL並將參數更改爲229或130等,並獲得來自其他用戶的信息的訪問權限。

防止這種情況的最佳實踐是什麼,在記錄級別上設置身份驗證並拒絕其他用戶的記錄訪問? (當然記錄有一個用戶名)。
隱藏url中的參數將是不誘惑用戶的一個步驟,對此的建議值得歡迎。 必要的是模塊/動作級別的身份驗證。

我一直在尋找,但似乎無法找到解決方案。

回答

0

兩者兼而有之。如果您想編輯已登錄的用戶個人資料詳細信息,則不需要URL中的ID,因爲您已經知道他們是誰。

然後,在您的更新代碼中,只允許它們更新其特定數據。

如果你有一個登錄用戶,你可能會有一個對象讓你更容易更新他們的數據(取決於你是否使用ActiveRecord或其他),否則確保你在你的SQL中使用id。