Response HeadersでapacheとPHPのバージョン、OSを非表示にする

Linux,PHP,技術AlmaLinux,CentOS

こんばんわ。

日々のストレス負荷が高すぎて魔剤(スト〇ングゼロ)が手放せなくなりつつある、どうもみけぽんです。

 

デフォルトだとブラウザの管理者ツールを使えばapacheやPHPのバージョンをResponse Headersから確認できてしまうので、今回は非表示にする方法について説明しようと思います。

 

 

Response HeadersでapacheとPHPのバージョン、OSを非表示にする

デフォルトだとapache、PHPのバージョン、OSは晒されている

 

 

 

 

 

 

 

上記は私が仮想環境上に構築したWEBアプリの開発環境ですが、Google Chromeの開発者ツールで確認するとばっちりapacheとPHPのバージョンが晒されています。

ついでに言うとOSまでもです。

これはセキュリティ的に好ましい状態ではなく、非表示にしなければなりません。

特定のOS、apache、PHPのバージョンを狙った攻撃の対象になりかねないからです。

 

apacheのバージョン、OSを非表示にする

httpd.confを修正します。

CentOSなどのRHEL系OSだと下記パスにあります。

/etc/httpd/conf/

$ vi /etc/httpd/conf/httpd.conf

# 下記を追記する 
ServerTokens Prod

 

PHPのバージョンを非表示にする

php.iniを修正します。

CentOSなどのRHEL系OSだと/etc配下にあります。

$ vi /etc/php.ini

# 400行目辺りにある下記をOffに変更
expose_php = On
↓
expose_php = Off

 

apache、PHP-FPMを再起動する

設定ファイルを修正したらapacheの再起動をします。

設定ファイルを修正した場合、構文テストコマンドの実行を必ず行ってください。

$ httpd -t
Syntax OK

「Syntax OK」が表示されれば問題なしです。

 

apacheの再起動を行います。

$ systemctl restart httpd

 

 

 

 

 

 

 

 

apache再起動だけだとapacheのバージョン、OSの表示は非表示になりますが、PHPのバージョンは表示されたままです。

よって追加でPHP-FPMの再起動も行います。

$ systemctl restart php-fpm

 

 

 

 

 

 

 

 

PHP-FPMの再起動まで行い、ようやくPHPのバージョンも非表示になりました。

 

まとめ

できればデフォルトで非表示にしてほしい😇

Linux,PHP,技術AlmaLinux,CentOS