2012-10-26 49 views
2

在CRUD環境中,假設我們正在顯示用戶聯繫人列表。網站需要向用戶提供「編輯」和「刪除」功能。每個聯繫人表示數據庫表中的記錄,並且記錄的標識符必須傳遞給瀏覽器(客戶端)。如何將表記錄標識符傳遞到客戶端

在我的應用程序中,我通常在表中有一個自動增量標識符字段,並將其值傳遞給瀏覽器。所以當用戶想要編輯或刪除時,我會將該請求連同該標識符一起發送到服務器。這樣我就可以在表格中找到記錄。

但我擔心安全和隱私。通常我不允許任何其他用戶訪問別人的記錄(Duh),儘管仍然不喜歡只傳遞一個整數給瀏覽器。

AFAIK,大公司正在提供像40F0C923BACECBF40C4CAA465D0E4DB0這樣的長唯一標識符來做到這一點,但是這次我需要檢查每次創建新記錄之前是否使用了該值。

我不知道要問這個問題到數據庫部分或這裏,只是在這裏問。 你們如何設法做到這一點?或換句話說,它是如何做到專業?

回答

0

聽起來像是OWASP排名前10的違規行爲。具體Insecure Direct Object Reference。每個數據庫記錄都需要擁有一個所有權ID。這樣您就可以將用戶的ID存儲在會話狀態中,並確保用戶正在訪問屬於他們的記錄。

+0

我已經這麼做了。在做數據庫之前,首先檢查所有權。但是我想知道的是,如果僅將記錄標識符整數傳遞給瀏覽器是一種專業技術? – tcak

相關問題