假的 REQUEST_URI 响应

假的 REQUEST_URI 响应

我注意到在 Web 服务器日志文件中,有些人实际上测试了我的服务器(可能还有其他服务器)上某些页面的存在。

因此,我设置了一个自定义 404 页面,并读出访客的身份。例如

ErrorDocument 404 /404.php

我得到了如下结果:

GATEWAY_INTERFACE   CGI/1.1 
SERVER_ADDR         62.75.xxx.xxx (my servers IP) 
SERVER_NAME         vps28680.vps.ovh.ca 
SERVER_SOFTWARE     Apache/2.2.22 (Debian) 
SERVER_PROTOCOL     HTTP/1.1 
REQUEST_METHOD      GET 
REQUEST_TIME        1465225786 
REQUEST_TIME_FLOAT  1465225786.731        
DOCUMENT_ROOT       /var/www 
HTTP_HOST           vps28680.vps.ovh.ca 
HTTP_USER_AGENT     Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0 
REMOTE_ADDR         167.114.3.44 
REMOTE_PORT         44685 
SCRIPT_FILENAME     /var/www/404.php  
SERVER_PORT         80 
SERVER_SIGNATURE    Apache/2.2.22 (Debian) Server at vps28680.vps.ovh.ca Port 80 
SCRIPT_NAME         /404.php 
REQUEST_URI         HTTP://vps28680.vps.ovh.ca/judge/judge.php 

在正常世界中服务器名称应该是请求 URI并且它应该解决远程地址

就像在这种情况下:

$_SERVER(REQUEST_URI) = "HTTP://vps28680.vps.ovh.ca/judge/judge.php"
$_SERVER(SERVER_NAME) = "vps28680.vps.ovh.ca"
and
$_SERVER(SERVER_NAME) = "167.114.3.44"

我执行了“dig vps28680.vps.ovh.ca”,结果是 167.114.3.44。

好的,到目前为止一切顺利,但问题是 IP 和 URI 都不在我的服务器上。

根据文档,$_SERVER(REQUEST_URI) 是访问者在 Firefox 浏览器中输入并登陆我的服务器的 URI。访问结束后,我立即点击了链接,但它并没有带我进入我的邮箱。

好吧,我认为可能有人设置了一个名称服务器,用该域名指向我的机器,但他怎么能用假 IP 做到这一点呢?那么他为什么会登陆我的机器呢?

据我所知主机名应该显示我的域名,而不是他的域名。或者这些可能不是他的 IP 和他的域名。

有人能向我解释一下发生了什么事吗?

答案1

您可以在 HTTP HOST 标头中提供任何您想要的主机名,如果没有以此名称定义 vhost,则 Web 服务器通常会使用默认服务器来提供服务,而默认服务器通常只是定义的第一个服务器(这是 HTTP/1.1 的一个特性,使得仅使用一个 IP 地址就可以为多个域提供服务)。

因此,实际情况是,有人167.114.x.x(很可能是被机器人感染)正在扫描网络主机,无论出于何种目的,并且只是在 HTTP 请求中提供自己的主机名。这样,他们就可以简单地遍历 IP 地址,而不需要有效的主机名。

换句话说:这里没什么可看的,只是网络上的普通一天。

相关内容