勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

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のバージョンが表示される場合とされない場合があり不思議に思っていたけど、このような設定を行うことで非表示にできるんだと勉強になった。

 - サーバー

  関連記事

Nginxで特定のディレクトリに対してBasic認証を設定
Nginxで特定のディレクトリに対してBasic認証を設定

Nginxで特定のディレクトリに対してBasic認証を設定したい。Apacheだ ...

VPSのCentOSにプロキシサーバーを立てる方法
VPSのCentOSにプロキシサーバーを立てる方法

借りているVPSにプロキシサーバーを立てたかった。環境と設置方法等を以下にメモ。 ...

中国のIPアドレスをiptablesで拒否、遮断する
中国のIPアドレスをiptablesで拒否、遮断する

レンタルしているVPSの一つが最近よく落ちる。原因はどうも海外、特に中国から不正 ...

docker-compose.ymlでまとめてコンテナ作成・起動・ネットワーク接続する方法
docker-compose.ymlでまとめてコンテナ作成・起動・ネットワーク接続する方法

Podmanでコンテナを作成してネットワーク接続する際、Cockpit上やCUI ...

WordPressサイトのロードアベレージが高い際の対応方法
WordPressサイトのロードアベレージが高い際の対応方法

あるWordPressサイトのロードアベレージが先月ぐらいまでは通常0.5前後で ...