VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

PHPのバージョン情報とApacheの設定

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
モバイルバージョンを終了