Skip to content

Commit 6ba6f6d

Browse files
author
bytesharky
committed
hide-server-1.26.3
1 parent cf43ce8 commit 6ba6f6d

File tree

6 files changed

+55
-26
lines changed

6 files changed

+55
-26
lines changed

src/http/ngx_http_core_module.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ static ngx_conf_enum_t ngx_http_core_server_tokens[] = {
125125
{ ngx_string("off"), NGX_HTTP_SERVER_TOKENS_OFF },
126126
{ ngx_string("on"), NGX_HTTP_SERVER_TOKENS_ON },
127127
{ ngx_string("build"), NGX_HTTP_SERVER_TOKENS_BUILD },
128+
{ ngx_string("hide"), NGX_HTTP_SERVER_TOKENS_HIDE },
128129
{ ngx_null_string, 0 }
129130
};
130131

src/http/ngx_http_core_module.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ typedef struct ngx_thread_pool_s ngx_thread_pool_t;
5858
#define NGX_HTTP_SERVER_TOKENS_OFF 0
5959
#define NGX_HTTP_SERVER_TOKENS_ON 1
6060
#define NGX_HTTP_SERVER_TOKENS_BUILD 2
61+
#define NGX_HTTP_SERVER_TOKENS_HIDE 3
6162

6263

6364
typedef struct ngx_http_location_tree_node_s ngx_http_location_tree_node_t;

src/http/ngx_http_header_filter_module.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ ngx_http_header_filter(ngx_http_request_t *r)
290290
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) {
291291
len += sizeof(ngx_http_server_build_string) - 1;
292292

293-
} else {
293+
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_OFF) {
294294
len += sizeof(ngx_http_server_string) - 1;
295295
}
296296
}
@@ -456,17 +456,18 @@ ngx_http_header_filter(ngx_http_request_t *r)
456456
if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_ON) {
457457
p = ngx_http_server_full_string;
458458
len = sizeof(ngx_http_server_full_string) - 1;
459+
b->last = ngx_cpymem(b->last, p, len);
459460

460461
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) {
461462
p = ngx_http_server_build_string;
462463
len = sizeof(ngx_http_server_build_string) - 1;
464+
b->last = ngx_cpymem(b->last, p, len);
463465

464-
} else {
466+
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_OFF){
465467
p = ngx_http_server_string;
466468
len = sizeof(ngx_http_server_string) - 1;
469+
b->last = ngx_cpymem(b->last, p, len);
467470
}
468-
469-
b->last = ngx_cpymem(b->last, p, len);
470471
}
471472

472473
if (r->headers_out.date == NULL) {

src/http/ngx_http_special_response.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ static u_char ngx_http_error_tail[] =
3838
"</html>" CRLF
3939
;
4040

41+
static u_char ngx_http_error_hide[] =
42+
"</body>" CRLF
43+
"</html>" CRLF
44+
;
4145

4246
static u_char ngx_http_msie_padding[] =
4347
"<!-- a padding to disable MSIE and Chrome friendly error page -->" CRLF
@@ -688,9 +692,12 @@ ngx_http_send_special_response(ngx_http_request_t *r,
688692
len = sizeof(ngx_http_error_build_tail) - 1;
689693
tail = ngx_http_error_build_tail;
690694

691-
} else {
695+
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_OFF) {
692696
len = sizeof(ngx_http_error_tail) - 1;
693697
tail = ngx_http_error_tail;
698+
} else {
699+
len = sizeof(ngx_http_error_hide) - 1;
700+
tail = ngx_http_error_hide;
694701
}
695702

696703
msie_padding = 0;

src/http/v2/ngx_http_v2_filter_module.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ ngx_http_v2_header_filter(ngx_http_request_t *r)
225225
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) {
226226
len += 1 + nginx_ver_build_len;
227227

228-
} else {
228+
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_OFF) {
229229
len += 1 + sizeof(nginx);
230230
}
231231
}
@@ -425,20 +425,19 @@ ngx_http_v2_header_filter(ngx_http_request_t *r)
425425

426426
if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_ON) {
427427
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0,
428-
"http2 output header: \"server: %s\"",
429-
NGINX_VER);
428+
"http2 output header: \"server: %s\"",
429+
NGINX_VER);
430430

431431
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) {
432432
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0,
433-
"http2 output header: \"server: %s\"",
434-
NGINX_VER_BUILD);
433+
"http2 output header: \"server: %s\"",
434+
NGINX_VER_BUILD);
435435

436-
} else {
436+
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_OFF) {
437437
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, fc->log, 0,
438-
"http2 output header: \"server: nginx\"");
438+
"http2 output header: \"server: nginx\"");
439439
}
440440

441-
*pos++ = ngx_http_v2_inc_indexed(NGX_HTTP_V2_SERVER_INDEX);
442441

443442
if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_ON) {
444443
if (nginx_ver[0] == '\0') {
@@ -447,6 +446,7 @@ ngx_http_v2_header_filter(ngx_http_request_t *r)
447446
nginx_ver_len = p - nginx_ver;
448447
}
449448

449+
*pos++ = ngx_http_v2_inc_indexed(NGX_HTTP_V2_SERVER_INDEX);
450450
pos = ngx_cpymem(pos, nginx_ver, nginx_ver_len);
451451

452452
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) {
@@ -457,9 +457,11 @@ ngx_http_v2_header_filter(ngx_http_request_t *r)
457457
nginx_ver_build_len = p - nginx_ver_build;
458458
}
459459

460+
*pos++ = ngx_http_v2_inc_indexed(NGX_HTTP_V2_SERVER_INDEX);
460461
pos = ngx_cpymem(pos, nginx_ver_build, nginx_ver_build_len);
461462

462-
} else {
463+
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_OFF) {
464+
*pos++ = ngx_http_v2_inc_indexed(NGX_HTTP_V2_SERVER_INDEX);
463465
pos = ngx_cpymem(pos, nginx, sizeof(nginx));
464466
}
465467
}

src/http/v3/ngx_http_v3_filter_module.c

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -161,17 +161,22 @@ ngx_http_v3_header_filter(ngx_http_request_t *r)
161161
if (r->headers_out.server == NULL) {
162162
if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_ON) {
163163
n = sizeof(NGINX_VER) - 1;
164+
len += ngx_http_v3_encode_field_lri(NULL, 0,
165+
NGX_HTTP_V3_HEADER_SERVER,
166+
NULL, n);
164167

165168
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) {
166169
n = sizeof(NGINX_VER_BUILD) - 1;
170+
len += ngx_http_v3_encode_field_lri(NULL, 0,
171+
NGX_HTTP_V3_HEADER_SERVER,
172+
NULL, n);
167173

168-
} else {
174+
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_OFF) {
169175
n = sizeof("nginx") - 1;
176+
len += ngx_http_v3_encode_field_lri(NULL, 0,
177+
NGX_HTTP_V3_HEADER_SERVER,
178+
NULL, n);
170179
}
171-
172-
len += ngx_http_v3_encode_field_lri(NULL, 0,
173-
NGX_HTTP_V3_HEADER_SERVER,
174-
NULL, n);
175180
}
176181

177182
if (r->headers_out.date == NULL) {
@@ -343,22 +348,34 @@ ngx_http_v3_header_filter(ngx_http_request_t *r)
343348
if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_ON) {
344349
p = (u_char *) NGINX_VER;
345350
n = sizeof(NGINX_VER) - 1;
351+
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
352+
"http3 output header: \"server: %*s\"", n, p);
353+
354+
b->last = (u_char *) ngx_http_v3_encode_field_lri(b->last, 0,
355+
NGX_HTTP_V3_HEADER_SERVER,
356+
p, n);
346357

347358
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) {
348359
p = (u_char *) NGINX_VER_BUILD;
349360
n = sizeof(NGINX_VER_BUILD) - 1;
361+
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
362+
"http3 output header: \"server: %*s\"", n, p);
350363

351-
} else {
364+
b->last = (u_char *) ngx_http_v3_encode_field_lri(b->last, 0,
365+
NGX_HTTP_V3_HEADER_SERVER,
366+
p, n);
367+
368+
} else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_OFF) {
352369
p = (u_char *) "nginx";
353370
n = sizeof("nginx") - 1;
354-
}
371+
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
372+
"http3 output header: \"server: %*s\"", n, p);
355373

356-
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
357-
"http3 output header: \"server: %*s\"", n, p);
374+
b->last = (u_char *) ngx_http_v3_encode_field_lri(b->last, 0,
375+
NGX_HTTP_V3_HEADER_SERVER,
376+
p, n);
358377

359-
b->last = (u_char *) ngx_http_v3_encode_field_lri(b->last, 0,
360-
NGX_HTTP_V3_HEADER_SERVER,
361-
p, n);
378+
}
362379
}
363380

364381
if (r->headers_out.date == NULL) {

0 commit comments

Comments
 (0)