问题:
网站的评分系统,采用哈希来确保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中文网其他相关文章!