RailsアプリケーションはApache2とPhusionPassengerを使用して提供されています。セキュリティ対策として、サーバー関連のすべてのHTTPヘッダーを抑制しようとしています。Apacheヘッダーを正常にオフにしましたが、 mod_headers
を使用して乗客を抑制するのに問題があります。mod_headers
コマンドを使用してa2enmod
を有効にし、Apacheプロセスを再起動しましたが、X-Powered-By
とX-Runtime
ヘッダーは引き続き表示されます。
これは私の仮想ホストファイルです:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /home/deploy/public_html/railsapp/current/public
LogLevel warn
ErrorLog /home/deploy/public_html/railsapp/shared/log/error.log
CustomLog /home/deploy/public_html/railsapp/shared/log/access.log combined
# Suppress Phusion Passenger HTTP headers
<Location *>
<IfModule mod_headers.c>
Header unset X-Runtime
Header unset X-Powered-By
</IfModule>
</Location>
</VirtualHost>
mod_headers docs から:
Mod_headersによって提供されるディレクティブは、サーバー構成内のほぼどこにでも発生する可能性があります。これらは、メインサーバーの構成セクションと仮想ホストセクション、内部、セクション、および.htaccessファイル内で有効です。
これを仮想ホスト全体に適用したい場合は、なぜ<Location>
タグ内に配置するのですか?メインのvhost構成内にディレクティブを配置するだけです。
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /home/deploy/public_html/railsapp/current/public
LogLevel warn
ErrorLog /home/deploy/public_html/railsapp/shared/log/error.log
CustomLog /home/deploy/public_html/railsapp/shared/log/access.log combined
<IfModule mod_headers.c>
Header unset X-Runtime
Header unset X-Powered-By
</IfModule>
</VirtualHost>
私はこれをテストしていないので、間違っている場合は事前に謝罪します。
手元にあるApacheのインストールはありませんが、<Location *>
疑わしいようです。 docs 言う:
URLはワイルドカードを使用できます。ワイルドカード文字列では、?任意の1文字に一致し、*は任意の文字シーケンスに一致します。どちらのワイルドカード文字も、URLパスの/と一致しません。
どのURLとも一致していないようです。試してください:
<Location />
<IfModule mod_headers.c>
Header unset X-Runtime
Header unset X-Powered-By
</IfModule>
</Location>
サーバーを決定するのはまだ本当に簡単ですが、少なくともヘッダーがなくてもバージョンを修正することは簡単です。「スクリプトキディ」はすべての攻撃を試みるだけで、バージョンを確認する必要はありませんとにかく。
行を削除するとどうなりますか、コマンドをそのままにしておきます。
ロードされているのではないかと思います。静的ヘッダーを追加して確認してください。