2019独角兽企业重金招聘Python工程师标准>>>

细节决定成败,服务器的安全也是这样!隐藏或者修改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,只是不显示版本号!

转载于:https://my.oschina.net/yearnfar/blog/512851

隐藏或者修改nginx信息相关推荐

  1. 修改web服务器的缺省旗标,修改Nginx缺省banner

    服务器banner是什么 服务器banner主要影响http响应中的头部字段server(http服务器信息).格式一般为服务器名称/版本号,如nginx/1.18.0. banner影响响应头ser ...

  2. nginx 修改html header,nginx 安全笔记 (修改nginx的header信息和错误显示版本号)

    nginx 安全笔记 (修改nginx的header信息和错误显示版本号) 发布时间:2020-08-07 16:18:18 来源:51CTO 阅读:1189 作者:674591788 随笔记载,欢迎 ...

  3. apache php隐藏头信息的方法,科技常识:nginx/apache/php隐藏http头部版本信息的实现方法...

    今天小编跟大家讲解下有关科技常识:nginx/apache/php隐藏http头部版本信息的实现方法,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关科技常识:nginx/apache/php ...

  4. nginx 配置php版本号,隐藏Apache、nginx和PHP的版本号的配置方法

    最近提示说有漏洞,暴露apache.nginx和php的版本号.网上搜了下,整理的方法如下: 首先说apache 在http.conf文件里添加下面两行,默认是没有的 ServerSignature ...

  5. apache php隐藏头信息的方法,apache、php隐藏http头部版本信息的实现方法

    1.apache隐藏头部版本信息,编辑httpd.conf文件,找到: ServerTokens OS ServerSignature On 修改为: ServerTokens ProductOnly ...

  6. 查看ngnix使用的php.ini位置_修改Nginx php.ini文件的经典教程

    我们在进行Nginx php.ini文件修改的时候需要我们注意不少东西,那么首先我们先来看看如何进行手动修改.如果你怕麻烦还可以进行自动修改.希望大家有所收获.修改Nginx php.ini文件. 手 ...

  7. qtableview删除选中行_如何批量删除PPT备注+如何修改模板信息

     今日更新主题   修改文件明显作者信息? 如何批量删除备注? 修改文件属性信息? 为什么模板有去不掉的背景图片? 1.修改文件作者信息? 写这篇文章的原因是之前身边有朋友参加比赛的时候,引用了某网站 ...

  8. linux修改端口监听地址,修改nginx/Tomcat等Web服务的端口监听地址

    我们将一起来学习如何在Linux实例中修改nginx.Tomcat等常见Web服务的端口监听地址. 前提条件 你已经在Linux实例上安装了Web服务器.你可以参考以下文档安装并启动相应的服务: 你已 ...

  9. thinkPHP6.0入门笔记(四)——删除和修改用户信息

    thinkPHP6.0实现删除和修改用户信息 1.删除用户信息 2.优化bootstrap资源引入方式 3.浏览器的cookie与session机制 4.token令牌原理 5.利用token防止表单 ...

最新文章

  1. Python 高阶函数filter、map、reduce、reversed、sorted及迭代器函数 iter
  2. 基于Yolo-V3对卫星图像进行储油罐容积占用率的研究
  3. vmware 上部署 kvm虚拟机
  4. Zookeeper之ZAB协议
  5. The type android.support.v4.view.ScrollingView cannot be resolved. It is indirectly referenced from
  6. 计算机桌面删除,如何删除计算机桌面上的冗余“ IE”浏览器_IT / computer_资料
  7. [转载]windows2003上IIS+PyISAPIe1.1..0部署成功
  8. Android开发笔记(七十四)布局文件优化
  9. 这届 Windows 不行,是因为微软不卖“软件”改卖“服务”?
  10. 【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3
  11. python详细安装教程-超详细Python与PyCharm安装教程,看这一篇就够了
  12. 音乐播放小窗口html,jQuery+html5迷你网页音乐播放器代码
  13. STM32 rtc唤醒 低功耗待机模式 避免iwdog看门狗方案
  14. 抖音矩阵系统源码搭建,抖音矩阵系统开发原理,抖音矩阵系统搭建
  15. 类型转化异常 Java Object转 int
  16. Qt 远程开关机 WakeOnLAN 编辑MagicPacket
  17. 100个精彩的开源游戏
  18. SQL SERVER2000安装挂起问题
  19. solidity Error:linearization of inherintance graph impossable
  20. 人脸识别——基于CNN的模型实现

热门文章

  1. 软件测试--数据库基础知识
  2. PreparedStatement对象
  3. 07-02 测试报告-allure
  4. HTML页面打印功能js代码,JavaScript_js实现页面打印功能实例代码(附去页眉页脚功能代码),复制代码 代码如下: html - phpStudy...
  5. iis7 您无权使用所提供的凭据查看此目录或页面。_使用 Spring Cloud 和 Docker 轻松构建微服务架构!...
  6. C#session共享+redis_Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享
  7. alter procedure是什么意思_板上钉钉的意思
  8. python连接池框架_Python中的连接池是非常重要的!神级程序员详解!
  9. 蓝牙广播错误码3_蓝牙简介—物理层(PHY)
  10. 金融数据分析与挖掘实战4.1 Matplotlib(一)