ウェブサイト検索

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

ここで、フラグは次のとおりです。

  1. -head – MIME ヘッダーの HEAD リクエストを送信します。
  2. -mime_header – 取得したドキュメントの MIME ヘッダーをソースとともに出力します。

: lynx – コマンドライン Web ブラウザがシステムにインストールされていることを確認してください。

それでおしまい!この記事では、Web サーバーを攻撃の可能性から守るために、サーバーの HTTP 応答ヘッダーで PHP のバージョン番号を非表示にする方法について説明しました。この投稿に意見を追加したり、以下のコメント フォームから関連する質問をしたりできます。