其实隐藏 Nginx 版本号无非就是为了防止“各版本公开的漏洞”被人利用而已,这点 Nginx 其实很早就考虑到了,在Nginx 的配置文件里只要加上server_tokens off就可以在网页head里隐藏掉 Nginx 的版本号了。

隐藏PHP/Nginx版本信息.jpg

隐藏 Nginx 版本号

具体操作如下:

第一步:

vim /usr/local/nginx/conf/nginx.conf

http{} 中加入

server_tokens off;

第二歩:

vi /usr/local/nginx/conf/fastcgi_params

将里面的

fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

修改为:

fastcgi_param SERVER_SOFTWARE nginx;

隐藏 Web 服务器名称

关于如何隐藏Web 服务器名称,目前看除了在编译 Web 服务器名称的时候进行伪装以外没有很好的办法了。下面以 Nginx 为例,伪装Nginx的具体办法,

首先需要在官网上下载 Nginx 源码解压,解压后编辑源码中的 src/core/nginx.h 文件

vi /src/core/nginx.h

修改为:

注意:# 不可以删除否则会报错,注释的部分可修改为任何字符。

#define NGINX_VERSION      "1.0"  //修改版本号
#define NGINX_VER          "GWS/" NGINX_VERSION //修改服务名称

修改 HTTP 响应头:

vi src/http/ngx_http_header_filter_module.c

修改为:

static u_char ngx_http_server_string[] = "Server: GWS" CRLF;

修改错误页的底部 Footer:

vi src/http/ngx_http_special_response.c

修改为:

static u_char ngx_http_error_tail[] =
"<hr><center>GWS</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;

之后重新编译 nginx 即可。

注意事项:程序重新编译完后,要 reload 不会生效,需要用 kill 命令杀死原来的进程,再重新启动 Nginx 。

其实还有一个最简单的隐藏 Web 服务器名称的方法,那就启用 CDN 服务,当客户端访问的是 CDN 节点的时候,看到的当然也就是 CDN 节点的 Web 服务器名称了,至于自己网站的 Web 服务器名称只要没有“真实IP”几乎是不可能获得了,国内很多的免费 CDN 都可以的。

隐藏 PHP 版本号

找到 PHP 配置文件 php.ini

定位到关键词 expose_php,并将值设置成 Off

expose_php = Off

保存并退出文件。重启 web 服务器即可。


相关推荐

  1. ngx_waf:一款高大全的 Nginx 网站防火墙模块
  2. LNMP 编译安装 ngx_pagespeed 模块给网站提速!
  3. 群晖NAS | PHP如何添加Acpu/Redis/Memcached等扩展?
  4. 如何彻底禁止百度等搜索引擎收录
  5. Nginx 查看并发连接数的两种方法
  6. 解决Nginx出现“Too many open files”的问题
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/10.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。