HTTPヘッダーでPHPのバージョン番号を非表示にする方法
PHP 設定では、デフォルトでサーバーの HTTP 応答ヘッダー「X-Powered-By」にサーバーにインストールされている PHP バージョンを表示することが許可されています。
サーバーのセキュリティ上の理由から (ただし、心配するほどの大きな脅威ではありません)、PHP を実行しているかどうかを知りたいとサーバーをターゲットにする可能性のある攻撃者に対して、この情報を無効にするか非表示にすることをお勧めします。
サーバーにインストールされている PHP の特定のバージョンにセキュリティ ホールがあり、逆に攻撃者がこれを知ると、脆弱性を悪用してスクリプトを介してサーバーにアクセスすることが非常に簡単になります。
前回の記事では、Apache のバージョン番号を非表示にする方法と、インストールされている Apache のバージョンをオフにする方法を説明しました。ただし、Apache Web サーバーで PHP を実行している場合は、インストールされている PHP のバージョンも非表示にする必要があります。これがこの記事で説明する内容です。
したがって、この記事では、サーバーの HTTP 応答ヘッダーに PHP バージョン番号の表示を非表示またはオフにする方法を説明します。
この設定は、ロードされた PHP 構成ファイルで構成できます。サーバー上のこの構成ファイルの場所がわからない場合は、以下のコマンドを実行して見つけます。
php -i | grep "Loaded Configuration File"
---------------- On CentOS/RHEL/Fedora ----------------
Loaded Configuration File => /etc/php.ini
---------------- On Debian/Ubuntu/Linux Mint ----------------
Loaded Configuration File => /etc/php/7.0/cli/php.ini
PHP 構成ファイルに変更を加える前に、次のように PHP 構成ファイルのバックアップを作成することをお勧めします。
---------------- On CentOS/RHEL/Fedora ----------------
sudo cp /etc/php.ini /etc/php.ini.orig
---------------- On Debian/Ubuntu/Linux Mint ----------------
sudo cp /etc/php/7.0/cli/php.ini /etc/php/7.0/cli/php.ini.orig
次に、次のようにスーパー ユーザー権限を持つお気に入りのエディターを使用してファイルを開きます。
---------------- On CentOS/RHEL/Fedora ----------------
sudo vi /etc/php.ini
---------------- On Debian/Ubuntu/Linux Mint ----------------
sudo vi /etc/php/7.0/cli/php.ini
キーワード expose_php
を見つけて、その値を オフ に設定します。
expose_php = off
ファイルを保存して終了します。その後、次のように Web サーバーを再起動します。
---------------- On SystemD ----------------
sudo systemctl restart httpd
sudo systemctl restart apache2
---------------- On SysVInit ----------------
sudo service httpd restart
sudo service apache2 restart
最後になりましたが、次のコマンドを使用して、サーバーの HTTP 応答ヘッダーに PHP のバージョン番号がまだ表示されているかどうかを確認してください。
lynx -head -mime_header http://localhost
OR
lynx -head -mime_header http://server-address
ここで、フラグは次のとおりです。
-head
– MIME ヘッダーの HEAD リクエストを送信します。-mime_header
– 取得したドキュメントの MIME ヘッダーをソースとともに出力します。
注: lynx – コマンドライン Web ブラウザがシステムにインストールされていることを確認してください。
それでおしまい!この記事では、Web サーバーを攻撃の可能性から守るために、サーバーの HTTP 応答ヘッダーで PHP のバージョン番号を非表示にする方法について説明しました。この投稿に意見を追加したり、以下のコメント フォームから関連する質問をしたりできます。