さまざまなWebサーバーのサーバーHTTPヘッダーの置換

こんにちは、Habrachitateli。

ほとんどの(すべてではないにしても)Webサーバーは、HTTP要求に応答するときに、サーバーヘッダーを使用して既定で宣言し、使用されるソフトウェアの名前、およびせいぜいバージョン、使用されるモジュールなどを提供します。 これらは、Mozilla Firefox用のServer Spyなどのアドオンを使用して便利に表示できます。

サーバースパイ

しかし、すべてのWebサーバーが単一のディレクティブでこの動作を明示的にオフにできるわけではありません。 私の意見では、これは潜在的なセキュリティホールです。 この記事では、Lighttpd、Nginx、Apache、G-WANサーバーのサーバーヘッダーの送信を無効にする方法、またはその値を任意の値に変更する方法を示します。
カットの下の詳細。

Lighttpd


Lighttpdは、サーバーヘッダースプーフィングを提供する構成ファイルにリストされている唯一のサーバーです。 次のようになります。
server.tag = "gws"

Nginx


Nginx Webサーバーのサーバーヘッダーを変更する方法について、Webで複数回説明しました。 すべてが額で行われます-ソースの値の置換と再コンパイルの助けを借りて。 たとえば、 www.xakep.ru / post / 54168
より簡単な方法があります。 HttpHeadersModuleモジュールとHttpHeadersMoreModuleモジュールの組み合わせを使用するか、単一のHttpHeadersMoreModuleを使用するさらに簡単なオプションを使用して、結果を得ることができます。

HttpHeadersModuleとHttpHeadersMoreModuleモジュールの組み合わせを使用する:
# Server
more_clear_headers 'Server';
#
add_header Server gws;


単一のHttpHeadersMoreModuleを使用:
# HttpHeadersMoreModule
more_set_headers 'Server: my-server';


アパッチ


Apache Webサーバーでは、 ServerTokenを使用してサーバーヘッダーのコンテンツが構成されます。
デフォルト値はFullです。 Apache / 2.4.1(Unix)PHP / 4.2.2 MyMod / 1.2などの情報を表示します
削減できる最小値はApacheです。 mod_headerを使用して、Nginxに似た構成を作成しようとしました。 失敗-Apacheは設定を無視し、ServerTokensとServerSignatureに従ってServer値を永続的に設定し続けます。
mod_securityを配置し、構成に行を追加する必要がありました。
SecServerSignature "gws"
稼いだ。

G-wan


G-WANの場合、構成自体は存在しません。 ハンドラーのCコードは次のようになります。

xbuf_xcat(get_reply(argv),
"HTTP/1.1 200 OK\r\n"
"Content-type: text/html\r\n"
"Content-Length: 20\r\n"
"Server: gws\r\n"
"Connection: keep-alive\r\n\r\n"
"Hello, World");

// set the HTTP reply code
int *pHTTP_status = (int*)get_env(argv, HTTP_CODE);
if(pHTTP_status)
*pHTTP_status = 200; // 200:OK
return 2;


G-WANのセットアップの微妙な点はこの記事のトピックではないため、詳細には触れません。

備考


この記事では、私が使用しているWebサーバーについて説明しますが、テストのためにソフトウェアを個別にインストールする必要はありませんでした。 類推して、他のWebサーバーを構成する場合-書き込み、記事を補足します。

Source: https://habr.com/ru/post/J140734/


All Articles