欢迎光临lce.cc,我是一名技术出身的互联网产品经理和创业者,对产品、运营、设计、建筑、互联网、路由器、区块链等领域都有较深入的研究,对历史、哲学、心理学、政治也比较感兴趣,欢迎同样有兴趣的一起交流。我的邮箱:a#lce.cc

隐藏nginx版本号的两种方法

PHP lce 720℃ 0评论

一般情况下,我们要知道一个网站用了哪种环境,只需要简单通过浏览器的F12控制台,查看http的响应头信息即可看到。

比如下面这个:

有时候在网站显示403/404/502等错误的时候,甚至还会暴露具体的版本号。

对于网站安全而言,隐藏web服务器的版本号是比较重要的。所以下面我们讲一下怎么隐藏nginx的版本信息。也就是说,让一般人很难清楚自己网站用的哪种web服务器。

第一种方法是修改nginx的配置文件,即nginx.conf

在里面找到server_tokens这一行,如果是On,则修改为Off即可。这种方法最简单,适用于一般小白或不喜欢折腾的人。

第二种方法则是直接修改nginx源码,达到隐藏版本甚至采用假信息迷惑别人的目的。比较适合爱折腾的技术狂们。

首先是下载nginx源码,下载前最好是通过nginx -V命令查看下之前nginx的相关编译信息,下载正确的版本号。

解压源码包,然后修改src/http/ngx_http_header_filter_module.c这个文件,大概是49-50行:

将nginx修改成你希望的名字,比如lce.cc之类。

接下来修改src/core/nginx.h这个文件,这三行都可以修改:

最后修改src/http/ngx_http_special_response.c这个文件大概36行:

修改完成后,按照之前nginx -V查看的编译参数重新编译,即./configure+编译参数,再make,备份原nginx二进制文件之后make install,再nginx -s reload(正确的方法是/etc/init.d/nginx restart)一下即可。

比如像我在修改源码完成后,会先:

./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_v2_module –with-http_gzip_static_module –with-http_sub_module –with-stream –with-stream_ssl_module –with-openssl=/root/lnmp1.6/src/openssl-1.1.1d –with-openssl-opt=’enable-weak-ssl-ciphers’ –with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib –add-module=/root/lnmp1.6/src/lua-nginx-module-0.10.14 –add-module=/root/lnmp1.6/src/ngx_devel_kit-0.3.1rc1 –add-module=/root/lnmp1.6/src/ngx_cache_purge-2.3

再make

再make install

再/etc/init.d/nginx restart,即可。

这时候,可以通过F12控制台查看修改后的版本信息。

完成以上三步修改后,不管是通过浏览器F12控制台还是其他方式,对方都很难知道你真正采用了什么样的web服务器环境。

转载请注明:长风破浪会有时,直挂云帆济沧海 » 隐藏nginx版本号的两种方法

喜欢 (1)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址