2012-05-03 48 views
0

我的程序有一個很大的安全問題,我需要隱藏部分URL。我在網上搜索了一個解決方案,沒有運氣。在我的程序中,我有管理員和用戶帳戶 - 該程序僅僅是工作人員dosie的數據庫。管理員可以查看所有劑量,但其他用戶只能看到他們工作組中的劑量。所以我的問題是,當用戶看到dosie時,訪問信息的URL如下所示:「viewdosje.php?album = 108。問題是用戶可以簡單地更改專輯ID並且他可以看到其他劑量,這是不好的,例如:安全原因url部分隱藏?

"viewdosje.php?album=109" 

通過他可以看到其他dosies URL變化數這將是巨大的隱藏URL的一部分,還是我錯了,請幫我一個?我不知道從哪裏開始

+3

通過默默無聞的安全就像沒有安全.. – peko

回答

7

您不應該隱藏url,而應該在應用程序中驗證對資源的訪問權限,當您收到ID時,在顯示內容之前,執行一個DB查詢當前登錄用戶是否有權訪問該資源與否。

+4

迄今爲止唯一的理智的答案 –

+0

@Darhazer是啊我說,沒有簡單的方法來保護數據,然後你寫。謝謝。 –

-3

我和PHP沒有實際經驗,所以我不能幫那裏,但如果我用JSP,或者Rails解決這個問題,我可以做到以下幾點:

也許存儲用戶在cookie身份信息,一旦通過驗證,將此信息與用戶數據庫進行比較?如果手動編輯網址,請阻止未經授權的用戶使用該頁面。

3

依靠「隱藏」URL是一個可怕的解決方案 - 任何人都可以訪問該URL可以訪問您的私人數據。可以通過各種方式訪問​​URL - 通過JavaScript,通過猜測,通過訪問瀏覽器歷史記錄,以及通過各種更加棘手的路線(如特洛伊木馬,鍵盤記錄器等)來嗅探網絡流量(例如,在不安全的WIFI點)。

如果這些員工記錄中的數據是敏感/私密的,那麼在大多數國家,您都有法定義務保護它們;即使沒有法律要求,您的公司可能也希望避免將所有人的工資納入公有領域。

正確的解決方案是設計一個登錄機制,並分配用戶權限;當用戶嘗試訪問他們無權訪問的頁面時,會向他們發送適當的錯誤消息。在PHP中有許多解決方案 - PEAR具有良好的實現。