隐藏或者修改nginx信息

细节决定成败,服务器的安全也是这样!隐藏或者修改nginx的信息,不是什么炫酷的技能,只是nginx设置中的一个小小的细节。

Http中的Nginx版本信息

查看http请求的response里面的header我们会发现有server这个参数,它表示服务端使用的是什么web服务器。

例如

新浪网:

Server: nginx

开源中国:

Server: Tengine

segmentfault甚至都没有返回server!

很多网站不止返回了nginx而且还带了版本号,而像版本号这种东西完全没必要暴露给用户,我们可以通过设置server_tokens off隐藏掉版本号:

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
    #                  ‘$status $body_bytes_sent "$http_referer" ‘
    #                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    
    server_tokens off;    ##隐藏版本号

PHP中的Nginx版本信息

即使把server_tokens设为了off,也并不代表nginx的版本号是完全不可见的~

通过上图我们可以看到虽然http返回的header里面已经没有了版本号,但是php里面还是可以获取到nginx的版本号的,如果要对PHP也隐藏掉版本号就需要修改fastcgi.conf这个文件了:

去掉后面的 /$nginx_version 或者 直接注释掉这一行!

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

修改或者隐藏Nginx信息

如果我希望nginx也不显示呢?或者修改nginx为Tengine呢?

这个时候就要修改nginx源码文件src/core/nginx.h,例如我把nginx修改问tengine:

/*
 * Copyright (C) Igor Sysoev
 * Copyright (C) Nginx, Inc.
 */
#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_
#define nginx_version      1009005
/*
#define NGINX_VERSION      "1.9.5"
#define NGINX_VER          "nginx/" NGINX_VERSION
*/
#define NGINX_VERSION      "2.1.1"
#define NGINX_VER          "Tengine/" NGINX_VERSION

#ifdef NGX_BUILD
#define NGINX_VER_BUILD    NGINX_VER " (" NGX_BUILD ")"
#else
#define NGINX_VER_BUILD    NGINX_VER
#endif
#define NGINX_VAR          "NGINX"
#define NGX_OLDPID_EXT     ".oldbin"
#endif /* _NGINX_H_INCLUDED_ */

也可以把NGINX_VER 赋值为空,这样Http 返回的header里面的server也为空了!

需要注意的是,如果server_tokens设置为off,即使源码NGINX_VER 赋值为空或者改成其他值,返回的server还是nginx,只是不显示版本号!

时间: 09-30

隐藏或者修改nginx信息的相关文章

修改nginx访问日志的中日志和时间期的格式

概述: 软件:nginx mongodb nginx日期时间格式[$time_local] 对应的日期时间格式为 [19/Jul/2014:18:50:51 +0800] 现在有一种需求,就是将nginx中访问日志的记录信息插入到mongodb数据库中,然后对某些视频做视频统计,然后做排行 当初在做的时候,首先想到的方法就是一种比较简单的方法,也没有考虑的太多,就直接使用mongodb自带的导入document的方式,这种方法显然十分简单,但是在后期却出现了一连串的问题,尤其是数据类型.因为[1

修改Nginx的header伪装服务器

有时候为了伪装自己的真实服务器环境.不像让对方知道自己的webserver真实环境,就不得不修改我们的webserer软件了!今天看了一下baidu.com的webserver感觉像是nginx修改的.C:/curl-7.18.0>curl.exe -I www.baidu.comHTTP/1.1 200 OKDate: Tue, 11 Mar 2008 05:00:39 GMTServer: BWS/1.0Content-Length: 3022Content-Type: text/htmlC

【第二组】用例文档、功能说明书、技术说明书:显示和修改玩家信息 工作序号003 2017/7/11

一.用例 1. 标题: 显示和修改玩家信息 2. 角色: 玩家 3. 主要成功场景: (1)玩家在主界面,点击顶端左侧自己的头像,进入了玩家信息界面.玩家信息界面,看到了自己的头像.昵称.账号.等级.积分等信息.玩家点击了更换头像按钮,在弹出窗口点击了"选择图片"按钮,从电脑资源管理器中的一张图片进行了上传,点击了"确认选择"按钮,完成上传. (2)玩家点击了昵称旁边的"修改昵称"按钮,在弹出窗口中的文本框中输入新的昵称,右侧的检查昵称重复标志显

利用DBMS_STATS包修改统计信息,欺骗优化器,生成糟糕的执行计划

在使用基于成本的优化器的优化器时,优化器生产执行计划时要估算每条SQL的执行成本,选择最佳的执行计划来执行sql语句.通过操纵统计信息就可以简介操纵执行计划的生成. 当然 需要强调的一点是,这是非常危险的行为 1 创建测试表 SQL> create table test_stats  as   2  select * from dba_objects ; Table created. 2 收集统计信息 SQL> EXEC dbms_stats.gather_table_stats(ownnam

MVC4做网站后台:模块管理1、修改模块信息

网站可能会包含一些模块:像文章.产品.图片.留言等. 栏目模块主要实现功能,启用或禁用模块,模块权限设置,模块上传设置等. 权限设置和上传设置以后专门考虑,先来显示或禁用模块. 1.在顶部导航栏添加管理连接 打开Home/Header.cshtml,在<nav>添加代码 2.添加Module接口 using Ninesky.Models; using System.Linq; namespace Ninesky.Areas.Admin.Repository { /// <summary&

修改NGINX版本名称伪装任意WEB SERVER

无论是作为Web服务器或其他类型程序的反向代理服务器,Nginx("engine x")都有着高性能且轻量级的优势.其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好.这也使得Nginx在如今不管是存放在高配独立服务器上的大型的门户,还是存放在迷你64M内存VPS上的小型的个人博客,Nginx都在被广泛使用着. 国内淘宝.新浪.网易.腾讯等都在使用.其中淘宝正是基于原作者的BSD-like协议,在其源代码基础上开发了Tengine,这暂且不表.

修改NGINX版本名称为任意WEB SERVER

下载好Nginx的安装文件nginx-1.6.0.tar.gz,并把它解压. wget http://nginx.org/download/nginx-1.6.0.tar.gz tar xzvf nginx-1.2.3.tar.gz 然后我们修改src/core/nginx.h. #define NGINX_VERSION "1.2.3" #define NGINX_VER "nginx/" NGINX_VERSION #define NGINX_VAR "

linux添加用户信息,修改用户信息

Linux操作系统创建用户可以设置用户的信息,设置指定UID,GID,用户备注信息,指定登录shell,指定家目录,可以设置和修改的内容很多. 比如如下的操作 useradd [options] username useradd -u username 指定UID建立用户 useradd -u 1111 tom useradd -g username 指定GID建立用户 useradd -g 1111 jim useradd -c username 指定注释信息建立用户 useradd -c "

如何限制Exchange用户在OWA中修改个人信息

一.为什么要限制或禁用呢? 最近在做一个Exchange的项目,客户那老是有用户在用户的ECP上随意修改自己的个人信息,懂Exchange与AD的童鞋们知道,用户自行修改后的这些信息会同步到AD,并且在地址簿中显示,基于安全原因和管理原因需要禁用ECP这个自助功能. 二.要限制哪一些功能? 以Exchange 2013为例在OWA中,我们先来看看,有哪几类功能,可供用户修改个人信息,主要包括以下几类: 1.自定义邮件签名.外出自动答复等邮件相关信息,如下图: 2. 修改密码.照片.帐号常规信息等