OS、各種サービスのバージョンが分かるとどのような脆弱性があるか推測されてしまうため、セキュリティ上できるだけ非表示とすることが推奨されます。PHPのバージョン情報非表示にする方法を確認しました。
PHPのバージョン情報を非表示にする設定
/etc/php.iniファイル内で下記記述をする。
expose_php = Off
この設定がOnになっているとPHPのバージョン情報がHTTPのヘッダに含まれてしまう。
動作確認
①Apacheの設定ファイルの”ServerTokens”の設定が”Full”で”expose_php”がONの場合
# telnet localhost 80 GET / HTTP/1.1 HTTP/1.1 400 Bad Request Date: Tue, 17 Dec 2013 03:39:31 GMT Server: Apache/2.2.15 (CentOS) DAV/2 Phusion_Passenger/4.0.27 PHP/5.3.3
上記のように、HTTPのヘッダに”PHP/5.3.3″が表示されています。
②Apacheの設定ファイルの”ServerTokens”の設定が”Full”で”expose_php”がOffの場合
# telnet localhost 80 GET / HTTP/1.1 HTTP/1.1 400 Bad Request Date: Tue, 17 Dec 2013 03:40:28 GMT Server: Apache/2.2.15 (CentOS) DAV/2 Phusion_Passenger/4.0.27
上記のように、HTTPのヘッダにPHPのバージョンが表示されなくなりました。
③Apacheの設定でPHPの情報を非表示にする
Apacheの”ServerTokens”の設定が”Prod”に設定されていれば下記のように”Apache”とだけ表示させることが出来る。
# telnet localhost 80 GET / HTTP/1.1 HTTP/1.1 400 Bad Request Date: Tue, 17 Dec 2013 03:41:25 GMT Server: Apache
PHPで開発時のみOnにする設定
開発終了後にも下記設定がOnのままになっていないか注意します。
display_errors = Off
track_errors = Off
html_errors = Off 関連記事の目次