Nginx这个信息暴露,无异于向攻击者明牌

admin Nginx评论187字数 1141阅读模式
摘要

在网络安全领域,服务器信息的暴露常常被视为一种潜在的风险。具体来说,Nginx服务器的版本号暴露无异于向攻击者明牌,增加了被针对性攻击的风险。本文将介绍如何减少服务器信息的泄露,并进一步增强服务器的隐蔽性。本文将介绍一种比关闭server_tokens更灵活、更隐蔽的方法 。

01.暴露版本号的危害
有时候我们可能会质疑,泄露nginx的版本号有什么大不了?但实际上主要通过恶意构造的请求就能产生致命的威胁,如 1.15.6 和 1.14.1 版本之前的 nginx 在 HTTP/2 实现中存在漏洞,构造之后的请求就可能导致nginx内存消耗过大,严重者出现拒绝服务(Dos)。
Nginx这个信息暴露,无异于向攻击者明牌
02.大型网站的做法
大型的网站基本会隐藏版本号,更有甚者会自定义web引擎的名称,我们先看下天猫和京东的做法。
天猫:
Nginx这个信息暴露,无异于向攻击者明牌
京东:
Nginx这个信息暴露,无异于向攻击者明牌
从上面的截图,我们可以看出,没有一家是显示web引擎的版本号的。
03.实用方法介绍
在上面文章中,我们已经介绍了nginx的编译方法,其中就包含了headers-more-nginx-module模块,其中有个指令more_set_headers可以实现灵活隐藏web引擎版本号,倘若公司的安全防护等级降低,甚至可以自定义名称,下面是实现的方法:
# 在http块中添加,全局生效
http {
    more_set_headers 'Server: pxe';
}

# 在server块中添加,局部生效,更加灵活
server {
    more_set_headers 'Server: pxe';
}
通过上面的配置后,站点反馈的response headers的server头将返回值为SRE,黑客的攻击成本将大大提高。
当然,headers-more-nginx-module模块还有其他实用的指令,都看一下吧:
1. more_clear_headers:用于删除指定的HTTP头。
location / {
    more_clear_headers 'Server';
}
这将删除响应头中的Server字段。
2. more_set_input_headers:用于修改传入请求的HTTP头。
location / {
    more_set_input_headers 'X-Forwarded-Proto: https';
}
这将为所有传入请求添加或修改X-Forwarded-Proto头。
3. more_clear_input_headers:用于删除传入请求的指定HTTP头。
location / {
    more_clear_input_headers 'User-Agent';
}

这将删除传入请求中的User-Agent头。

04.结语
通过合理配置Nginx的server_tokens指令和使用more_set_headers模块,我们可以有效隐藏Nginx版本号,并进一步伪装服务器信息。这不仅提升了服务器的隐蔽性,也增加了攻击者识别和攻击的难度,从而提高了整体安全性。此外,我们往往可能认为nginx的安装很简单,但要构建一套能抗能打的nginx还是需要有实用的插件加持,欢迎阅读上一篇文章,下期将继续为大家分享nginx的实用模块的具体实战。

版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
广告也精彩
admin
  • 本文由 发表于 2024年8月9日 16:07:59
  • 转载请务必保留本文链接:https://www.58pxe.com/12054.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: