問題:
網站的評分系統,採用雜湊來確保HTTP 請求完整性透過請求重複被利用。攻擊者獲得高分並複製請求詳細資訊來操縱系統。
隨機數字解:
為了對抗這種攻擊,謹慎實施隨機數系統。 Nonce(使用一次的數字)為每個請求提供唯一的值,防止重複使用相同請求。
設定Nonce 系統的通用且安全的方法:
伺服器端函數:
客戶端功能:
實作詳細資料:
隨機數系統範例:
// Server-Side getNonce() { $id = identifyRequest(); $nonce = hash('sha512', makeRandomString()); storeNonce($id, $nonce); return $nonce; } verifyNonce($data, $cnonce, $hash) { $id = identifyRequest(); $nonce = getNonce($id); removeNonce($id, $nonce); $testHash = hash('sha512', $nonce . $cnonce . $data); return $testHash == $hash; } // Client-Side sendData($data) { $nonce = getNonceFromServer(); $cnonce = hash('sha512', makeRandomString()); $hash = hash('sha512', $nonce . $cnonce . $data); $args = ['data' => $data, 'cnonce' => $cnonce, 'hash' => $hash]; sendDataToClient($args); }
透過實施這個隨機數系統,網站可以有效防止重複請求並保持評分繫統的完整性。
以上是如何實施隨機數係統來保護網站完整性並防止重複請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!