PHPでこんな情報が表示されるって知ってますか?
Linux Mintでapt-get upgrade, dist-upgradeが終わらないので、一つ記事でも。
今の時代、PHPが実行可能なサーバは多いと思いますが、そんなサーバを運用している方へ、こんな情報表示されちゃいますよ、という話し。セキュリティにも関わってくるので、知っておきませう。
論より証拠
とりあえず、PHPが動くことが前提で、素のPHPでもいいし、何かすでにフレームワーク等動いてるならその環境下でもよいので、以下のようにしてみませう。とりあえず、素のPHPで。
- まず、ファイル名はなんでもよいので、適当なPHPファイル(ex: index.php)を作成する。
- ウェブサーバの設定をもとに、権限を設定し、ウェブサーバ経由で参照できるようにする。
- たとえば、ブラウザでhttp://www.test.org/index.phpにアクセスできることを確認する
ここまでが下準備。
そしたら、以下のようにファイル名のあとにパラメータを追加する。
?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
なので、http://www.example.orgというサイトのドキュメントルート直下にindex.phpというファイルがあるなら、以下のようになる。
http://www.example.org/index.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
このようなロゴが表示された人は「PHP Easter Egg」というものが有効になっています。
もう少し表示させてみましょう。追加したコードを以下のように変更してください。
?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
どうでしょうか。表示される人もいるかと思います。
それで何が問題なの?
まぁ、クレジットが出る程度なら、かわいいものなんですが、以下のコードに変えてみると話は変わってきます。
?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
青い象が表示されましたが、PHP Easter Eggこういうところ見ると、環境によって違う動物が表示されたりするわけです。
公式サイト見ても、このEaster Eggに関して言及してる部分がググりきれなかったので、適当にググってもらえればと思いますが、この画像によって、インストールしているPHPのバージョンが外部から分かってしまうということが問題であります。
ということで、OFFにしておきましょう。
方法は、「php.iniのexpose_phpをoffにする」だけです。あとはウェブサーバ再起動して終わり。
終わりに
Apacheインストール後の初期設定とかでApacheのバージョン情報消したりするというのは、気をつけることとしてよく書かれている気がするのですが、このEaster Eggへの言及はそこまで多くない気がするので、自戒も含めて。