其实隐藏 Nginx 版本号无非就是为了防止“各版本公开的漏洞”被人利用而已,这点 Nginx 其实很早就考虑到了,在Nginx 的配置文件里只要加上server_tokens off就可以在网页head里隐藏掉 Nginx 的版本号了。
隐藏 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 服务器即可。
相关推荐
- ngx_waf:一款高大全的 Nginx 网站防火墙模块
- LNMP 编译安装 ngx_pagespeed 模块给网站提速!
- 群晖NAS | PHP如何添加Acpu/Redis/Memcached等扩展?
- 如何彻底禁止百度等搜索引擎收录
- Nginx 查看并发连接数的两种方法
- 解决Nginx出现“Too many open files”的问题
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/10.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。