ハッカーがサーバーに侵入するとき、最初に「侵入」しますが、ここでの「侵入」はサーバー内で実行されているサービスのバージョン番号などの詳細を把握することを指します。ハッカーは、対応するサービスのバージョン番号を知ると、そのサービスの脆弱性を見つけて侵入し、攻撃することができます。不要な問題を避けるために、これらのバージョン番号を隠す必要があります。
試してみましょう
insoz:~ insoz$ curl -I http://127.0.0.1/phpinfo.php HTTP/1.1 200 OK Server: nginx/1.5.0 Date: Thu, 18 Jun 2015 02:39:32 GMT Content-Type: text/html Connection: keep-alive Vary: Accept-Encoding X-Powered-By: PHP/5.3.1
サーバーの nginx と php のバージョンが公開されていることがわかります。隠しメソッドを見てみましょう。
まず、nginx でバージョン番号を非表示にする方法を見てみましょう:
nginx 構成ファイル nginx.conf に、次のコードを追加します
server_tokens off;
Apache でバージョン番号を非表示にする方法:
Apache 設定ファイル httpd.conf に、次のコードを追加します
ServerTokens Prod ServerSignature Off
php でバージョン番号を非表示にする方法を見てみましょう:
PHP 構成ファイル php.ini に、次のコードを追加します
expose_php = Off
変更が完了したら、サービスを再起動して、もう一度テストしてみましょう:
insoz:~ insoz$ curl -I http://127.0.0.1//phpinfo.php HTTP/1.1 200 OK Server: nginx Date: Thu, 18 Jun 2015 02:41:47 GMT Content-Type: text/html Connection: keep-alive Vary: Accept-Encoding