ホームページ >バックエンド開発 >PHPチュートリアル >大きな謎: CSRF 攻撃を効果的に防ぐ方法
$_SERVER['HTTP_REFERER'] を使用する方法がインターネット上にあります
しかし、いくつかの記事では
リファラーが偽造される可能性があることを指摘しています
たとえば、
4f90f1393abd570df70d134bcb05bdd8
試してみたところ、ヘッダーを使用して送信したようで、コンソールでリファラーが変更されたことがわかりました。つまり、$_SERVER['HTTP_REFERER'] が空になっているようです。それで、このパラメータは機能しますか?それを防ぐことはできるでしょうか?
ディスカッションへの返信 (解決策)
フォームの場合は、ランダムな文字列(トークン)または即時発行される認証コードを配置できます
通常のページの場合は、ajax を介してパスワードを取得できます(ajax はクロスドメインではなく、シミュレーション JS 動作技術はより難しいため)
ページ内で後から読み込まれるオブジェクト (画像、js ファイルなど) を介して追加の Cookie 変数を渡すこともできます
受動的防御中に、ページ内の不明な接続をフィルターで除外できます
$ch = curl_init();$opts = array( CURLOPT_URL => 'http://your web/test.php', CURLOPT_RETURNTRANSFER => true, CURLOPT_REFERER => 'http://spider.baidu.com/', //伪造referer CURLOPT_HTTPHEADER => array( "Expect: ", ), );curl_setopt_array($ch, $opts);$s = curl_exec($ch);
PHP 実践 QQ グループ : 33918040 に関連する情報がたくさんあります
わかりました。また勉強してみます~~