我最近繼承了ASP.NET MVC 4代碼庫。我注意到的一個問題是在網址中使用了一些數據庫ID(整數)以及HTML表單提交。目前狀態下的代碼可以通過URL修改和創建具有不同數字的自定義HTML帖子來利用。如何防止我的HTML在避免GUID時被利用?
現在,雖然我可以通過使用會話狀態或其他身份驗證檢查輕鬆解決URL問題,但我並不確定嵌入到網站吐出的HTML中的數據庫ID(即,我給他們下拉到填)。當ids回來後,我怎麼能確定我把它們作爲有效的選項? 在解決這個問題方面被認爲是「最佳實踐」?
雖然我很欣賞我可以「引導它」,但我很猶豫,因爲我發現它們在調試數據庫的過程中遇到麻煩。
我在這裏有選擇嗎?我必須通過GUID來防止輕鬆猜測ID或者是否有某種DRY機制可用於驗證ID在他們回到網站時的使用情況?
更新:一位評論者詢問我期待的漏洞。比方說,我吐出一張HTML表格,裏面有一個可以導入「寶藏」的所有位置的下拉列表。用戶擁有的位置的ID是1,2和3,這些位置在HTML中提供。但用戶檢查html,並與它一起擺弄,並決定放置一個POST的ID爲4的選定。 4不是他的位置,是他人的位置。
通過什麼機制,你期待的利用?在什麼情況下襬弄數據可能會危害您的系統?使用GUID不會使任何內容更安全。 – PhonicUK
爲您更新了OP。 Guids在這種情況下更安全,因爲你無法猜測它們。 – Quibblesome