【web安全】隐藏nginx头文件信息
摘要
Nginx作为开源web中间件,被广泛应用。因此源编译或者yum安装,都会带有其原有的nginx版本。很容易被针对,因此,通过修改nginx的源码。隐藏nginx版本和头部信息,保障nginx的安全。操作如下:
1.修改nginx.h文件
位置为:/nginx-1.20.0/src/core
修改内容如下:
#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_
#define nginx_version 1020000
#define NGINX_VERSION "1.0" //我修改的内容
#define NGINX_VER "zsdweb/" NGINX_VERSION //我修改的内容
#ifdef NGX_BUILD
#define NGINX_VER_BUILD NGINX_VER " (" NGX_BUILD ")"
#else
#define NGINX_VER_BUILD NGINX_VER
#endif
#define NGINX_VAR "ZSDWEB" //我修改的内容
#define NGX_OLDPID_EXT ".oldbin"
#endif /* _NGINX_H_INCLUDED_ */
2.修改ngx_http_header_filter_module.c
通过linux命令参看:
[root@localhost http]# cat ngx_http_header_filter_module.c |grep server_string
static u_char ngx_http_server_string[] = "Server: ZSDWEB" CRLF;
上述可以看到我修改的version为zsdweb,版本为1.0
3.源编译和make
./configure --prefix=/opt/nginx --with-http_gunzip_module --with-http_gzip_static_module --with-pcre=/opt/soft/pcre-8.44 --with-zlib=/opt/soft/zlib-1.2.11 --with-http_ssl_module --with-openssl=/opt/soft/openssl-1.1.1l
make
4.生成的二进制文件
[root@localhost objs]# pwd
/opt/soft/nginx-1.20.0/objs
您在 /var/spool/mail/root 中有邮件
[root@localhost objs]# ls -lrt
总用量 7924
drwxr-xr-x 9 root root 4096 4月 27 14:42 src
-rw-r--r-- 1 root root 657 10月 11 14:02 ngx_auto_headers.h
-rw-r--r-- 1 root root 17671 10月 11 14:02 autoconf.err
-rw-r--r-- 1 root root 6287 10月 11 14:02 ngx_modules.c
-rw-r--r-- 1 root root 43098 10月 11 14:02 Makefile
-rw-r--r-- 1 root root 7334 10月 11 14:02 ngx_auto_config.h
-rw-r--r-- 1 root root 35312 10月 11 14:06 ngx_modules.o
-rwxr-xr-x 1 root root 7967912 10月 11 14:06 nginx
5.查看版本信息
[root@localhost objs]# ./nginx -v
nginx version: zsdweb/1.0
至此,nginx编译成功,替换原来的版本软件即可。修改源码也不是那么的困难,也都是一个个c语言文件组测。
【web安全】隐藏nginx头文件信息的更多相关文章
- Nginx优化之基本安全优化 (隐藏Nginx软件版本号信息,更改源码隐藏Nginx软件名及版本号,更改Nginx服务的默认用户)
一,隐藏Nginx软件版本号信息 查看版本号 curl -I 192.168.0.220 HTTP/1.1 200 OK Server: nginx/1.6.2 #这里清晰的暴露了Web版本号(1.6 ...
- 隐藏Nginx软件版本号信息
为了提高我们web服务器的安全性,我们应当尽可能的隐藏服务器的信息以防止他人通过这些信息找到漏洞侵入我们的服务器,对于Nginx而言,我们安装好Nginx后最好隐藏Nginx的版本号,以防止通过该版本 ...
- AAC的ADTS头文件信息介绍
遵循:BY-SA 署名-相同方式共享 4.0协议 作者:谭东 时间:2016年10月28日 环境:Windows 7 ADTS是Audio Data Transport Stream的简称. ...
- VIM编辑新文件自动添加头文件信息
把如下文件直接贴到root目录下,在编辑新文件的时候显示自定义信息. root@shenlan-qianlan:/home/python/day1# vim shenlanqianlan.sh #!/ ...
- web.xml不同的头文件
<转自:http://blog.csdn.net/qq_16313365/article/details/53783288> 1. Servlet 3.1 Java EE 7 XML sc ...
- 隐藏nginx 版本号信息
为了安全,想将http请求响应头里的nginx版本号信息隐藏掉: 1. nginx配置文件里增加 server_tokens off; server_tokens作用域是http server loc ...
- 隐藏nginx 版本号信息(转)
为了安全,想将http请求响应头里的nginx版本号信息隐藏掉: 1. nginx配置文件里增加 server_tokens off; server_tokens作用域是http server loc ...
- C++头文件的包含顺序研究
一.<Google C++ 编程风格指南>里的观点 公司在推行编码规范,领导提议基本上使用<Google C++ 编程风格指南>.其中<Google C++ 编程风格指南 ...
- (转)C++头文件顺序
转自:http://blog.csdn.net/clever101/article/details/7269058关键总结:先包含的头文件的函数会覆盖后包含的头文件的同名函数.建议采用Google C ...
- pycharm创建脚本头文件模板
代码头文件信息可以包括:python 解析器的位置.字符集.作者信息.创建脚本时间等,pycharm工具创建头部信息模板操作步骤如下: 设置头文件:文件-->设置-->编辑器-->文 ...
随机推荐
- Oracle regexp_replace 手机号脱敏
select '18012345678',regexp_replace('18012345678','(.){4}','****',4,1) from dual;
- PSS:你距离NMS-free+提点只有两个卷积层 | 2021论文
论文提出了简单高效的PSS分支,仅需在原网络的基础上添加两个卷积层就能去掉NMS后处理,还能提升模型的准确率,而stop-grad的训练方法也挺有意思的,值得一看 来源:晓飞的算法工程笔记 公众号 ...
- archlinux开机出现错误Dependency failed for /home. Dependency failed for Local File System Time outwaiting for device /dev/disk/...
错误如下 Dependency failed for /home. Dependency failed for Local File System Time outwaiting for device ...
- #保序回归问题,单调栈,二分#洛谷 5294 [HNOI2019]序列
题目 给定一个长度为 \(n\) 的序列 \(A\),以及 \(m\) 个操作,每个操作将一个 \(A_i\) 修改为 \(k\). 第一次修改之前及每次修改之后,都要求你找到一个同样长度为 \(n\ ...
- #构造,二分#[AGC006B] [AGC006D] Median Pyramid
Easy Hard 分析(Easy) 若\(X=1\)或\(X=2n-1\)无解,否则在正中间构造\(X-1,X,X+1\), 其余位置升序铺入剩余数, 若\(X-1\)左侧数大于\(X-1\)那么\ ...
- 解锁OpenHarmony技术日!年度盛会,即将揭幕!
OpenHarmony技术日 即将揭幕!4月25日(星期一)09:00-18:00与你惊喜相约! 扫码直达 共建新技术.开拓新领域 OpenHarmony 工作委员会+7 家单位共同发起 ...
- Go 语言函数、参数和返回值详解
函数是一组语句,可以在程序中重复使用.函数不会在页面加载时自动执行.函数将通过调用函数来执行. 创建函数 要创建(通常称为声明)一个函数,请执行以下操作: 使用 func 关键字. 指定函数的名称,后 ...
- Grafana 系列-统一展示-4-AWS Cloudwatch 数据源
系列文章 Grafana 系列文章 AWS Cloudwatch 数据源 对于 AWS Cloudwatch, 主要在于 3 种不同的认证方式: AWS SDK Default IAM Role AK ...
- Java+HTML预习笔记_20140610
1.HTML <img> 标签 HTML <img> 标签 实例 在下面的例子中,我们在页面中插入一幅 W3School 的工程师在上海鲜花港拍摄的郁金香照片: <img ...
- redis 简单整理——Lua[十一]
前言 简单介绍一下Lua. 正文 为了保证多条命令组合的原子性,Redis提供了简单的事务功能以及集 成Lua脚本来解决这个问题. 前面提及到pipline,也提及到pipline 并不是原子性的,如 ...