HTTP応答ヘッダーに「サーバー:Apache」があり、それを削除したい。これをhttpd.confに追加するような指示に従いました:
ServerSignature Off
ServerTokens Prod
Header unset Server
しかし、最後の行は効果がありません。最初の2行でヘッダーの内容が変更されました(以前はOSとPHPに関する情報も含まれていました)が、完全に削除する必要があります。これを行う方法?
Apacheでは、これを完全に解除することはできません。実際、開発者の中には、これが数回提案された(そして書かれたことさえある)単純なコード変更であるにもかかわらず、これを追加することに激しく反対する人もいます。これが取り上げられて拒否された議論の一部については、 here および here を参照してください。
これには、次のようなさまざまな理由があります。
Apacheのインストール数を実際に数えることがより困難になる場合があります。これが主な理由だと思います。 Webサーバーの使用は激しく争われており、Apacheのライバルの1つ(Nで始まっていてもいなくてもよい)は、Apacheでどのように基盤を確立しているかを定期的に投稿しており、ほとんどのスキャンはHTTPヘッダーに基づいているので、これを隠す方が簡単です。
あいまいさによるセキュリティは神話であり、サーバーが特定の要求にどのように応答するかに基づいて、どのソフトウェアであるかを確認するためにサーバーをフィンガープリントするのは簡単なので、誤った安心感を与えます。その真実の内面はありますが、ServerTokensをデフォルトでFulldefinitelyに指定すると、デフォルトで表示されるよりもはるかに多くの情報をリークするセキュリティ上の問題になります公開ウェブサイト。
サーバーヘッダーを提供しないことは、HTTP仕様に反する場合とそうでない場合があります。これはいくつかの論争にあるようですが、Apacheではなくランダムな文字列に変更できない理由についてはまだ回答していません。
問題のデバッグは難しくなりますが、デバッグが必要な人なら誰でも正確なバージョンを知っている、または見つけることができると思います。
プロキシサーバーは、相手側のサーバーの種類を知っている場合、要求を異なる方法で処理する可能性があります。プロキシサーバーIMHOのどちらが間違っているのか、私はそれがもうほとんど行われていないと思います。
このヘッダーを修正または非表示にしたい場合は、ソースコードを編集できます。これは、率直に言って、コードの経験がない人に行うようにアドバイスする危険な推奨事項であり、これを追加するためだけに非パッケージバージョンから実行すると、他のセキュリティ問題につながる可能性があります。
公式ドキュメント にこれを追加することさえします:
ServerTokenを最小値未満に設定すると、相互運用の問題のデバッグが難しくなるため、お勧めしません。また、Server:ヘッダーを無効にしても、サーバーの安全性を高めるために何もしないことに注意してください。 「あいまいさによる安全」という考えは神話であり、誤った安全感をもたらします。
その推論は、私見、とんでもないことであり、私が言うように、それがそれを許可しない主な理由であるならば、彼らが彼らのスタンスを変えない理由を私は知りません。最悪の場合、それは彼らが言うように何も追加せず、この全体の質問が頻繁に出されるのを止めますが、個人的にはあなたが提供する不要な情報が少ないほど、これをオフにできる方が良いと思います。
ありそうもないuターンまでは、次のようになります。
ただし、ポイント4および5については、他のほとんどのWebサーバーではこれをオフにできないため、これはApacheに固有の問題ではありません。たとえば、Nginxでは、ソースコードを同様に編集せずにこれをオフにすることはできません。