2015-07-05 33 views
0

我有一個關於安全性的問題。我使用的URL像這樣的網站:安全性:URL中的主鍵參數

www.mysite.com/product?id=4 

在服務器端,我檢查過程中,如果產品ID = 4存在並且連接用戶看到這個頁面,該產品的權利許可。如果不是用戶得到錯誤「未經授權」。

我的問題是id = 4是我的表的主鍵。我想知道這個主鍵是否在url中清楚地顯示出來是個好主意。

也許這

www.mysite.com/product?id=45t6yHYU431azeFgThu78n 

是更好?在地址欄中轉換這些參數會更好嗎?或者如果在服務器端正確管理安全,則不需要?

+0

[使用主鍵的可能重複/ ID字段作爲URL中的標識符](http://stackoverflow.com/questions/566996/using-primary-key-id-field-as-an-identifier-in-a-url) –

回答

0

這取決於標識符是指什麼。你總是想知道攻擊者可以用這些信息做什麼。漏洞中的不透明標識符是否會向攻擊者提供任何有價值的信息?他/她能否使用這些信息以不安全的方式檢索更多信息?

如果例如該標識符是其也在其他系統和衆多紙形式使用的醫療記錄號(MRN),這將是一個HIPAA違反在URL中使用該標識符。

另一方面,如果此標識符指向庫存表中的產品,則可能在URL片段或查詢參數中使用該產品可能不錯。

0

而不是URL使用產品ID = 4,可以使用在PHP定義爲產品ID發送到服務器側POST方法沒有顯示出它在地址欄中