比如说我不想让别人知道我的站点是用了 nginx 的。Google 了一下发现大多数都只说了怎么隐藏 nginx 的版本号,而不是彻底隐藏整个 nginx 的(我的意思是不让人知道用的是 nginx)。
1
babyname 2015-05-23 22:43:42 +08:00 via iPhone
不要用nginx
|
2
babytomas 2015-05-23 22:46:38 +08:00 1
|
3
viko16 2015-05-23 22:48:56 +08:00 1
nginx 源码修改
#define NGINX_VAR 然后编译安装之 |
4
Septembers 2015-05-23 22:49:04 +08:00
自己做一个"like nginx"
|
5
sanddudu 2015-05-23 22:49:42 +08:00 1
|
6
vimutt 2015-05-23 22:56:33 +08:00 1
需要改源码然后重新编译nginx吧
|
7
cevincheung 2015-05-23 23:08:12 +08:00 1
tengine
服务器配置: server_token off; server_tag 自己随便写; |
8
rhwood 2015-05-24 11:15:35 +08:00
nginx前面放一个varnish
sub vcl_fetch { set beresp.http.Server = "爱写什么写什么"; } |
9
shakoon 2015-05-24 11:16:28 +08:00
记得把默认的错误页面都换掉,不然随便一个404就知道你是什么了
|
10
holulu 2015-05-24 11:44:05 +08:00
除了用 Headers More 来修改 http header 之外,再用 Echo 来改写错误页的内容就 OK 了
|
11
johnsmith123 2015-05-24 14:14:01 +08:00
高中狗就好好读书,没事别想这想那的=。=
|
12
ihciah 2015-05-24 21:40:20 +08:00
故意搞一个IIS的出错页面,改源码再编译之类的。不过还是可能被nmap等指纹检测出来的。
不明白为何用Nginx要藏着...安全问题其实大部分是出在自己的应用代码上 |
13
pangtianyu OP @ihciah 不觉得很好玩嘛?安全什么的才不去管呢
|
14
pangtianyu OP @johnsmith123 抱歉……我不是高中生……
|
15
orzfly 2015-05-25 05:05:57 +08:00 1
_(:з」∠)_想伪装 IIS 的可以注意一下这个差异,IIS 在遇到无效 HTP 请求的时候返回的 Server 头不是 IIS 而是 Microsoft-HTTPAPI/2.0,而且 400 里会有为什么是无效的请求……
漏了 Host 的请求: -- snip -- # echo "GET / HTTP/1.1\n\n" | nc 192.168.43.177 80 0 1 HTTP/1.1 400 Bad Request Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 Date: Sun, 24 May 2015 21:02:37 GMT Connection: close Content-Length: 334 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><TITLE>Bad Request</TITLE> <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD> <BODY><h2>Bad Request - Invalid Hostname</h2> <hr><p>HTTP Error 400. The request hostname is invalid.</p> </BODY></HTML> -- snip -- 根本就不是 HTTP 的请求: -- snip -- # echo "WHAT THE FUCK\n\n" | nc 192.168.43.177 80 HTTP/1.1 400 Bad Request Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 Date: Sun, 24 May 2015 21:04:14 GMT Connection: close Content-Length: 311 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><TITLE>Bad Request</TITLE> <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD> <BODY><h2>Bad Request</h2> <hr><p>HTTP Error 400. The request is badly formed.</p> </BODY></HTML> -- snip -- 好像是个正常的 HTTP 请求(相应内容被省去了): -- snip -- # echo "GET / HTTP/1.1\nHost: 192.168.43.177\n" | nc 192.168.43.177 80 HTTP/1.1 200 OK Content-Type: text/html Last-Modified: Tue, 04 Nov 2014 07:02:27 GMT Accept-Ranges: bytes ETag: "7b6a334bfdf7cf1:0" Server: Microsoft-IIS/8.5 X-Powered-By: ASP.NET Date: Sun, 24 May 2015 21:02:54 GMT Content-Length: 701 -- snip -- |