Response HeadersでapacheとPHPのバージョン、OSを非表示にする
こんばんわ。
日々のストレス負荷が高すぎて魔剤(スト〇ングゼロ)が手放せなくなりつつある、どうもみけぽんです。
デフォルトだとブラウザの管理者ツールを使えば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のバージョンも非表示になりました。
まとめ
できればデフォルトで非表示にしてほしい😇