2010-07-11 100 views
1

我正在爲網站編寫數據庫前端。旁邊的記錄,我想包括一個鏈接喜歡這個:創建一個單一使用鏈接

Record 1 - [Add][1] [Edit][2] [Delete][3] 

但我想保護這些鏈接不止被使用一次。我的想法是傳遞一個散列值,然後將某個有效HASH值列表存儲在某個表的某個表中,並且只處理具有有效散列值的請求。有沒有更好的方法是?

更新:對這個問題的回答讓我問這個問題:What is the difference between a "nonce" and a "GUID"?。爲什麼你會使用一個nonce而不是一個GUID?

回答

2

你的想法是正確的,除了你應該使用密碼安全的隨機字節(一個"nonce")而不是散列。

+0

我希望找到一些方法可以讓我確定這是第一次請求,而不會觸及數據庫。這也有助於防止DOS攻擊。 – 2010-07-11 02:41:21

+0

我讀了一些關於「nonce」值的更多信息。它與使用散列真的是一樣的想法,但使用nonce值作爲散列?例如,如果我使用perl Data :: GUID模塊創建了GUID值,並將這些值用於散列值,那麼它就是「nonce」? – 2010-07-11 02:53:13

+0

現時的點是不可預知的。如果使用散列,則應該使用帶有隨機密鑰的密鑰HMAC SHA 512散列,並且應該頻繁更改密鑰。 – SLaks 2010-07-11 03:22:08

相關問題