поддельный ответ REQUEST_URI

Я заметил в лог-файле веб-сервера, что некоторые ребята действительно проверяют существование некоторых страниц на моем сервере (и, возможно, другом сервере).

Итак, я установил собственный сайт 404 и прочитал, кто эти посетители.

Я заметил в лог-файле веб-сервера, что некоторые ребята фактически проверяют существование некоторых страниц на моем сервере (и, возможно, на другом сервере).

Итак, я установил собственный сайт 404 и прочитал, кто эти посетители.

Я заметил в лог-файле веб-сервера, что некоторые ребята фактически проверяют существование некоторых страниц на моем сервере (и, возможно, на другом сервере).

Итак, я установил собственный сайт 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 

В нормальном мире SERVER_NAME должен быть частью REQUEST_URI , и он должен разрешаться в REMOTE_ADDR .

как в этом случае:

$_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"

Я сделал «копать vps28680.vps.ovh.ca», и он оказался 167.114.3.44.

Хорошо, пока все хорошо, но проблема в том, что ни IP, ни URI на моем сервере.

$ _SERVER (REQUEST_URI) - это согласно документации URI, который посетитель ввел в своем браузере Firefox и попал на мой сервер. И ровно сразу после его посещения я щелкнул ссылку, и она не привела меня к моему ящику.

Хорошо, я подумал, что вполне возможно, что кто-то настроил сервер имен, чтобы он указывал на мой ящик с этим доменом, но как он мог сделать это с поддельным IP? Так почему он приземлился на мою коробку?

Афайк HOST_NAME должен был показывать мое доменное имя, а не его домен. Или, возможно, это не его IP-адрес и его домен.

Кто-нибудь может объяснить мне, что происходит?

-1
задан 8 June 2016 в 14:01
1 ответ

В заголовке HTTP HOST можно указать любое имя хоста, и если с этим именем не определен vhost, веб-серверы обычно будут обслуживать его с сервером по умолчанию, который опять-таки обычно только первый определенный (это особенность HTTP/1.1 и позволяет обслуживать несколько доменов с одним IP-адресом). Итак, что происходит, так это то, что кто-то на 167.114.x.x (скорее всего зараженный ботом) сканирует веб-хосты с какой бы то ни было целью и просто предоставляет свое собственное имя хоста в HTTP-запросе. Таким образом, они могут просто выполнять итерации по IP-адресам и не нуждаются в действительных именах хостов.

Другими словами: Здесь не на что смотреть, просто обычный день в интернете.

2
ответ дан 5 December 2019 в 19:24

Теги

Похожие вопросы