HTTP応答ヘッダーにApacheやPHPのバージョン等不要なデータを出力させないようにする方法
当サイトをFirefoxの開発者ツールからチェックするとHTTP応答ヘッダーに「Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.29」とApacheやPHPのバージョンが表示されておりちょっと気になった。以下に表示させない方法をメモ。
対応前の応答ヘッダー
HTTP/1.1 200 OK Date: Sat, 10 Feb 2024 10:30:15 GMT Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.29 X-Powered-By: PHP/7.4.29 Cache-Control: max-age=3600 Expires: Sat, 10 Feb 2024 11:30:15 GMT Content-Length: 5354 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html; charset=UTF-8
対応方法
Apache設定
サーバにSSH接続し以下の通り進める。
#apacheの設定ファイルを開く vi /etc/httpd/conf/httpd.conf #以下を追記 ServerSignature Off ServerTokens ProductOnly #apacheの再起動 systemctl restart httpd
「ServerSignature」はエラーメッセージに関する設定、「ServerTokens」は応答ヘッダーの設定となる。
この時点での応答ヘッダーは以下内容が出力される。
HTTP/1.1 200 OK Date: Sat, 10 Feb 2024 10:37:49 GMT Server: Apache X-Powered-By: PHP/7.4.29 Cache-Control: max-age=3600 Expires: Sat, 10 Feb 2024 11:37:49 GMT Content-Length: 5354 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html; charset=UTF-8
「Server: Apache」のところが「ServerTokens」で設定した通り、最低限の出力になっている点が確認できる。
PHP設定
サーバにSSH接続し以下の通り進める。
#PHPの設定ファイルを開く vi /etc/php.ini #変更前 expose_php = On #変更後 expose_php = Off #apacheの再起動 systemctl restart httpd
「expose_php」が応答ヘッダーに関する設定となる。
この時点での応答ヘッダーは以下内容が出力される。
HTTP/1.1 200 OK Date: Sat, 10 Feb 2024 10:43:19 GMT Server: Apache Cache-Control: max-age=3600 Expires: Sat, 10 Feb 2024 11:43:19 GMT Content-Length: 5354 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html; charset=UTF-8
PHPのバージョンを表示されなくなった点が確認できる。
所感
色々サイトをWappalyzerで見ているとPHPやApacheのバージョンが表示される場合とされない場合があり不思議に思っていたけど、このような設定を行うことで非表示にできるんだと勉強になった。
関連記事
-
VPSのCentOSにプロキシサーバーを立てる方法
借りているVPSにプロキシサーバーを立てたかった。環境と設置方法等を以下にメモ。 ...
-
無料レンタルサーバ「シン・クラウド for Free」の使用した感想
無料のレンタルサーバと聞くと広告ありで機能制限が多いようなイメージを思い浮かべる ...
-
久しぶりにVPS(CentOS6系)でサーバー構築して詰まった点のメモ
DTIのVPSで久しぶりに初期化→再構築する機会があった。その際に詰まった部分の ...
-
他ドメインから画像の呼び出し(直リンク)を禁止する方法
他ドメインからの画像の呼び出し、いわゆる直リンクの禁止を行いたかった。調べるとh ...
-
CentOSでサーバ時間のずれを調整する方法(NTPの時刻同期)
他サーバとAPIリクエスト等のやり取りをするにあたり、自サーバと他サーバの時間設 ...