Googleで「Hostヘッダインジェクション」を検索しても「HTTPヘッダインジェクション」しか出てこないので、この記事を書くことにしました。 ちなみに、「Hostヘッダインジェクション」自体はPHPに固有というわけではなく、あらゆる環境で起こり得ます。 Hostヘッダインジェクションとは? HTTPリクエストの「Hostヘッダ」の値を攻撃者が操作する攻撃です。 例えば、以下のようなコードがあった場合、$_SERVER['HTTP_HOST']の値を操作できれば、リンク先を自由に変更できます。 <a href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/?token=secret"> 例えば、PHPビルトインWebサーバの場合ですが、telnetしてアクセスしてみましょう。 $ telnet localhost 8000 Trying 127