私は Web 開発の初心者で、CSRF、XSS、およびセッション ハイジャックについて読みました。提案された解決策の 1 つは、単純に a を使用しnonce
てリクエストの有効性をチェックすることです。セッションハイジャックを防ぐために、このスクリプトを PHP で作成しました。識別子、またはその組み合わせ (セッション ID とノンス) が要求ごとに変更されるという点で、セッション ID の再生成と精神的に似ていると思います。
if(!isset($_SESSION["user"]["nonce"]) ||
$_SESSION["user"]["nonce"] == $_COOKIE["SITE_nonce"])
{
$nonce = md5(uniqid());
$_SESSION["user"]["nonce"] = $nonce
setcookie("SITE_nonce", $nonce, 0, "/path");
}
else
die("Invalid Request");
これで十分ですか?SSL がセッション ハイジャックの良い解決策になることはわかっていますが、このアプローチについての洞察を期待しています。何か不足していますか?