运维

隐藏响应头中Apache、nginx或PHP的版本信息降低网站被黑客攻击的风险

MarginNote 3 - Mac端PDF阅读批注工具 激活码价格:¥69.00
赤友 NTFS for Mac 助手 -  磁盘硬盘格式读写软件注册激活码价格:¥35.00
虫洞 -  iPhone安卓投屏操控 电脑手机多屏协同,价格:¥45.00
namesilo全网最便宜域名注册商,输入折扣码:nsilo20立减1美元!

隐藏响应头中Apache、nginx或PHP的版本信息降低网站被黑客攻击的风险默认地,服务器HTTP响应头会包含ApacheNginxphp版本号。
如下图:隐藏响应头中Apache、nginx或PHP的版本信息降低网站被黑客攻击的风险因为这会让黑客通过知道详细的版本号而发起已知该版本的漏洞攻击。

Apache

为了阻止这个,需要在httpd.conf设置ServerTokensProd,这会在响应头中显示“Server:Apache”而不包含任何的版本信息。下面是ServerTokens的一些可能的赋值:

ServerTokens Prod 显示“Server: Apache” 
ServerTokens Major 显示 “Server: Apache/2″ 
ServerTokens Minor 显示“Server: Apache/2.2″ 
ServerTokens Min 显示“Server: Apache/2.2.17″ 
ServerTokens OS 显示 “Server: Apache/2.2.17 (Unix)” 
ServerTokens Full 显示 “Server: Apache/2.2.17 (Unix) PHP/5.3.5″

PHP

需要将php.ini中的expose_php = On,改为Off,头信息中将隐藏X-Powered-By:PHP/7.1.0

nginx

1.隐藏版本号:

vi nginx.conf

http 加上 server_tokens off;
如下:

http {
……省略配置
server_tokens off;   ->即可隐藏版本号
…….省略配置
}

重启nginx后,我们返回的Server头格式为Server:nginx ,而且nginx自己的404页面也没有版本号的信息
2.返回自定义的server
混淆Server信息不愿意告诉别人我是使用什么Server的,但没有找到相关文献去隐藏它,所以我们可以混淆她,如把Server返回GFW之类的。
大部分情况下,脚本的小子的扫描工具是扫描我们response返回的header中的server信息.我们可以采用编译源码的方法来改变返回的Server,笔者的版本是nginx1.7.0,我们修改src/http/ngx_http_header_filter_module.c 中的48行

static char ngx_http_server_string[] = "Server: nginx" CRLF;

把其中的nginx改为我们自己想要的文字即可,笔者就改为了YSY. 笔者输出的Server:YSY.(这个前提是你进行了第一个步句的操作,关闭了版本号)
如果你的版本号是开着的,你又想调戏下脚本小子.比如Server:billgate/1.9.0
我们修改src/core/nginx.h 定位到13-14行

#define NGINX_VERSION      "1.7.0"
#define NGINX_VER          "nginx/" NGINX_VERSION

Server返回的就是常量NGINX_VER, 我们把NGINX_VERSION大小定义为1.9.0nginx改为billgate就能达到我们的目的了

(0)

本文由 podipod软库网 作者:DevOps 发表,转载请注明来源!

关键词:, ,
ToDesk - 安全好用流畅远程控制软件 替代TeamViewer,价格:¥108.00
Eagle - 图片收集管理必备软件 激活码价格:¥119.00
PDF Expert 2 - Mac上优秀的PDF阅读编辑工具,价格:¥119.00

热评文章

发表评论