Masalah:
Sistem pemarkahan tapak web, yang menggunakan pencincangan untuk memastikan Integriti permintaan HTTP, sedang dieksploitasi melalui pertindihan permintaan. Penyerang mencapai markah tinggi dan mereplikasi butiran permintaan untuk memanipulasi sistem.
Penyelesaian Nonce:
Untuk memerangi serangan ini, adalah bijak untuk melaksanakan sistem nonce. Nonces (nombor digunakan sekali) memberikan nilai unik untuk setiap permintaan, menghalang penggunaan semula permintaan yang sama.
Cara Biasa dan Selamat untuk Menyediakan Sistem Nonce:
Fungsi Bahagian Pelayan:
Fungsi Bahagian Pelanggan:
Butiran Pelaksanaan:
Contoh Sistem 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); }
Dengan melaksanakan sistem nonce ini, tapak web boleh menghalang pertindihan permintaan dengan berkesan dan mengekalkan integriti sistem pemarkahan.
Atas ialah kandungan terperinci Bagaimanakah sistem nonce boleh dilaksanakan untuk melindungi integriti laman web dan mencegah pertindihan permintaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!