nginx php版本隐藏

配置完一台服务器后,并不是就可以高枕无忧了,前不久刚刚爆发的PHP 5.3.9版本的漏洞也搞得人心惶惶,所以说经常关注安全公告并及时升级服务器也是必要的。一般来说,黑客攻击服务器的首要步骤就是收集信息,比如说你的软件版本,这些将成为下一步有针对性攻击的依据。所以说一定程度的隐藏这些信息就显得非常有必要了,本文将简单介绍如何在网络上隐藏Nginx版本号以及PHP的版本号。

1.隐藏Nginx版本号,Nginx的版本号主要在两个地方会有,一个是HTTP header,有个Server:nginx/1.x.x类似会暴露Web服务器所用软件名称以及版本号,这个也是大多数Web服务器最容易暴露版本号的地方,第二个地方是Nginx出错页面,比如404页面没有找到等,这是如果用户没有指定页面的话,那么Nginx自己的页面会有版本戳记。

不过幸运的是对于这两个地方的版本号隐藏,Nginx都提供了简单的办法一步到位,参考server_tokens。通过在配置文件的http节配置server_tokens off来达到我们目的。

  http {
    # ...省略一些配置
    server_tokens off;
  }

最后别忘了使用命令nginx -s reload刷新当前配置。完成后你可以查看所有页面的响应头或者错误页,看看是不是只看到nginx字样而看不到版本号?什么?你想连nginx也改掉?呵呵,这个恐怕就麻烦了,需要改动Nginx源代码然后重新编译,感兴趣的童鞋可以参考《Linux/VPS环境下Nginx安全配置小记(1)》

2.隐藏PHP的版本号,PHP容易暴露的版本号在什么地方呢?其实也是在HTTP头,以类似X-Powered-By: PHP/5.2.11这种形式存在,大家可能会想到会不会是Nginx问题,而去到Nginx里面找相关配置,呵呵,其实这个是在PHP的配置文件php.ini里改动,打开php.ini,找到下面叙述:

;;;;;;;;;;;;;;;;;
; Miscellaneous ;
;;;;;;;;;;;;;;;;;
 
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
expose_php = On

expose_php = On改为expose_php = Off就搞定了,当然,对于Apache服务器还有另外一个方法可以直接尝试在.htaccess文件中Header unset X-Powered-By,删除X-Powered-By节,不过我还是建议改动php.ini的expose_php。

时间: 2024-10-14 12:28:41

nginx php版本隐藏的相关文章

Nginx环境下隐藏Nginx的版本信息

因为Nginx的性能优良,所以在越来越多的生产环境中用它来替代Apache或者用来做Apache的proxy反向代理,当然我们在平时使用的时候无论是用Nginx的正向代理还是反向代理都要隐藏其版本信息以防被探测,以前有写过Apache的版本隐藏,需要的可以参看:http://jim123.blog.51cto.com/4763600/1834625,同理php中隐藏版本信息也是一样的在php.ini中修改变量这里就不做过多的赘述了,在Nginx中conf配置文件Nginx.conf中http{}

nginx版本隐藏以及访问状态

1:nginx版本隐藏之前访问 [email protected] conf]# curl -I http://www.zxl.com HTTP/1.1 200 OK Server: nginx/1.8.0 Date: Sat, 19 Dec 2015 14:07:29 GMT Content-Type: text/html Content-Length: 44 Last-Modified: Fri, 18 Dec 2015 05:23:18 GMT Connection: keep-alive

nginx 修改并隐藏版本号

1  更改版本信息 curl -I 192.168.10.11|grep Server 第一种   修改版本及版本号 nginx编译前更改 src/core/nginx.h #define nginx_version      1008001 #define NGINX_VERSION      "1.8.1"  #修改想要显示的版本如:2.2.23 #define NGINX_VER          "nginx/" NGINX_VERSION        #

nginx优化之隐藏版本名

1.1 Nginx基本安全优化 1.1.1 调整参数隐藏nginx软件版本信息 想要隐身,首先要了解使用软件的版本号,对于linux客户端,可通过命令检查nginx版本号,最简单的方法就是用curl命令: [[email protected] extra]# curl -I 10.0.0.8 HTTP/1.1 200 OK Server: nginx/1.10.2 Date: Mon, 05 Jun 2017 13:28:29 GMT Content-Type: text/html Conten

Nginx 升级版本或者重新编译增加参数

Nginx 升级版本或者重新编译增加参数 这里我们重新编译下,增加nginx用户和组 先创建用户 #useradd nginx 开始编译 #cd /usr/local/nginx-1.6.1 #./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --h

nginx 各版本镜像站点

nginx 各版本镜像站点: http://mirrors.sohu.com/nginx/

OGRE1.7以上版本隐藏LOGO及鼠标拾取物体关键

OGRE1.7以上版本隐藏LOGO 需要在你的程序里包含sdktrays.h这个头文件,该文件存在于include/OGRE目录下,包含这个头文件后,一般会编译不通过,需要在sdktrays.h头文件里包含#include "OISMouse.h",我用的是1.7.4版本,这样才能编译通过,然后就是初始化 mTrayMgr = new OgreBites::SdkTrayManager("myTray", mWindow, mMouse, listener);接下来

nginx各版本变化说明

from: http://nginx.org/en/CHANGES 使用nginx cache,想要配置cache数据自动清理时间,发现一个参数 clean_time ,但发现很早这个参数就从稳定版本中 清除了.目前来看,只能用purge指令控制. 以下是 nginx 各个版本的 changes 说明. Changes with nginx 1.7.7 28 Oct 2014 *) Change: now nginx takes into account the "Vary" head

nginx低版本不支持pathinfo模式,thinkphp针对此问题的解决办法

将一个thinkphp项目从apache环境移到nginx1.2上,怎奈,nginx这个版本默认不支持pathinfo模式 首先,编辑nginx的虚拟主机配置文件 location ~ .*.(php|php5)?$ { #原有代码 } if (!-e $request_filename) {   rewrite  ^(.*)$  /index.php?s=$1  last;   break;    } #去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo #如果你不需要用到p