流行服务器软件(nginx apache)隐藏响应头等信息的方法

发布时间:2020-06-13编辑:脚本学堂
在Lighttpd、Nginx 、Apache中隐藏响应头信息、Server信息、版本信息的方法,供大家学习参考。web server避免一些不必要的麻烦,可以把apache和php的版本信息不显示。

在Lighttpd、nginxapache隐藏响应头信息、Server信息、版本信息的方法,供大家学习参考。

web server避免一些不必要的麻烦,可以把apache和php的版本信息不显示。

有关http响应头的内容,可以参考如下的文章:
有关nginx的默认主机头的一个问题
HTTP缓存 http请求头信息 http响应头信息

1)、隐藏 Apache 版本信息
/etc/apache2/apache2.conf 或 /etc/httpd/conf/httpd.conf
 

复制代码 代码示例:
ServerTokens ProductOnly
ServerSignature Off

重启 apache
现在 http 头里面只看到:
Server: Apache

2)、nginx
#vi nginx.conf
在http 加上 server_tokens off;

如下:
 

复制代码 代码示例:
http {
……省略配置
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
tcp_nodelay on;
server_tokens off;
…….省略配置
}

2、隐藏 PHP 版本
php.ini
expose_php On
改成
expose_php Off

重启apache后,php版本在http头中隐藏了。

参考解决方案:

1. Lighttpd 1.4.20
src/response.c:108 改为:
buffer_append_string_len(b, CONST_STR_LEN("Server: jufukeji"));
输出 Header:
HTTP/1.1 404 Not Found
Content-Type: text/html
Content-Length: 345
Date: Mon, 12 Jan 2009 13:54:02 GMT
Server: jufukeji

2. Nginx 0.7.30
src/http/ngx_http_header_filter_module.c:48-49 改为:
static char ngx_http_server_string[] = "Server: jufukeji" CRLF;
static char ngx_http_server_full_string[] = "Server: jufukeji" CRLF;
输出 Header:
HTTP/1.1 200 OK
Server: jufukeji
Date: Mon, 12 Jan 2009 14:01:10 GMT
Content-Type: text/html
Content-Length: 151
Last-Modified: Mon, 12 Jan 2009 14:00:56 GMT
Connection: keep-alive
Accept-Ranges: bytes

3. Cherokee 0.11.6
cherokee/version.c:93 添加:
ret = cherokee_buffer_add_str (buf, "jufukeji");
return ret;
输出 Header:
HTTP/1.1 200 OK
Connection: Keep-Alive
Keep-Alive: timeout=15
Date: Mon, 12 Jan 2009 14:54:39 GMT
Server: jufukeji
ETag: 496b54af=703
Last-Modified: Mon, 12 Jan 2009 14:33:19 GMT
Content-Type: text/html
Content-Length: 1795