Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,977

Когда $_SERVER['HTTP_HOST'] выводит НЕ адрес сайта?

16.02.2025, 10:30. Показов 1859. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть сайт mysite.com. В нем есть код:
PHP
1
log2file($_SERVER['HTTP_HOST']));
который просто логирует в файл переменную при каждом обращении к странице. Не важно зачем это делается, это просто тест.
Так вот, я заметил что помимо "mysite.com" и айпи адреса сайта туда попадают: куча левых сайтов (например,
Code
1
bs***st.at, hu***0.shop, hi***hc.shop, om****ce6.cc, captcha.k***5.at, me*****13.at
), и сайты типа гугл, яндекс, дзен, cloudflare, microsoft, localhost и пр.
Почему так происходит? В каком случае сервер может выдавать имена других сайтов?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.02.2025, 10:30
Ответы с готовыми решениями:

В чем отличия $_SERVER['HTTP_HOST'] и $_SERVER['SERVER_NAME']
Привет никак не могу разобратся с разными понятиями. 'HTTP_HOST' Содержимое заголовка Host: из текущего запроса, если он...

$_SERVER['HTTP_REFERER'] и $_SERVER['HTTP_HOST']
Здравствуйте. Пытаюсь отлавливать юзеров, кто откуда пришел. Вот код (впринцепе работает): if(!isset($_COOKIE)){ ...

$_SERVER['HTTP_HOST'] - что за зверь
На странице http://api.drupal.ru/api/function/drupal_valid_http_host написано "Поскольку $_SERVER пересылается сайту клиентским...

7
Невнимательный
 Аватар для ft4l
3112 / 1291 / 359
Регистрация: 08.02.2013
Сообщений: 7,566
Записей в блоге: 2
16.02.2025, 18:41
Цитата Сообщение от Toxa33rus Посмотреть сообщение
$_SERVER['HTTP_HOST']
все что HTTP_*** php достаёт из заголовков запроса.
... в запросе будет в заголовках строка Host: example.org получите такое значение в $_SERVER['HTTP_HOST']
... не будет такого совсем, ничего не получите )

Файл test.php
PHP
1
2
3
4
5
6
<?php
error_reporting(-1);
ini_set('display_errors', 1);
header('content-type: text/plain; charset=utf-8');
 
var_dump($_SERVER['HTTP_HOST']);
запрос http://127.0.0.1/test.php из браузера выводит
string(9) "127.0.0.1"

Не из браузера и без Host: ... выводит
<br />
<b>Notice</b>: Undefined index: HTTP_HOST in <b>....\www\test.php</b> on line <b>6</b><br />
NULL


Цитата Сообщение от Toxa33rus Посмотреть сообщение
В каком случае
Не искал, есть-ли в примочках для браузеров что-то изменять любые заголовки,
Но в самодельных клиентских приложениях, после подключения по IP и порту,
может только строка GET / единственное что нужно чтобы сервер понял что запрашивают и отдал.
... пробовал просто GET , отдаёт "400 Bad Request"
остальное уже опционально или обрабатывается в зависимости от того что, и если, будет/нет.
1
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,977
16.02.2025, 18:52  [ТС]
Цитата Сообщение от ft4l Посмотреть сообщение
все что HTTP_*** php достаёт из заголовков запроса
А как тогда правильно узнать с какого сайта запущен скрипт без возможности подмены? Случаи, когда запуск происходит локально или по айпи адресу можно опустить.
0
Невнимательный
 Аватар для ft4l
3112 / 1291 / 359
Регистрация: 08.02.2013
Сообщений: 7,566
Записей в блоге: 2
16.02.2025, 19:30
Цитата Сообщение от Toxa33rus Посмотреть сообщение
с какого сайта запущен скрипт без возможности подмены
Могу себе представить только 3 варианта, когда такое может интересовать ))
1. Если скрипт в одной файловой системе с скриптами сайтов, которые могут его включать.
Тогда если юзаются Name based Виртуальные Хосты, и Host: имеет значение,
всё как обычно .) Указанные в конфигах как ServerName или ServerAlias рассматриваются как совпавшие,
запросы со всеми остальными могут обрабатываться только как для default host,... или первый из VirtualHost в Апаче.

Для IP-BASED хостов, как и для вообще безо всяких VirtualHost, это Host: вообще никакой роли не играет.
... если только чисто случайно попался браузер,) можно понять IP ввели в адресной строке или имя хоста

2. Включено allow_url_include в настройках php разных серверов, и код скрипта отдаётся просто текстом...
Тоже самое но на всех серверах подсосавших такой файл возможны свои и разной тяжести случаи.

3. Таки запрос идёт на один сервер.)) но со страниц разных сайтов и возможно без прямой инициализации пользователем...
Для такого если и возможно, определить "откуда" в некоторых случаях, то нет на 100% достоверности, тому что определяется.
0
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,977
16.02.2025, 19:47  [ТС]
Мало что понял ((

Цитата Сообщение от ft4l Посмотреть сообщение
Могу себе представить только 3 варианта, когда такое может интересовать ))
В двух словах: движок сайта смотрит откуда он запущен и незаметно мне об этом говорит, а я смотрю заплатили ли они деньги или украли. ))
Всё находится в одной файловой системе, на одном хостинге.
В целом всё работает, но мне сыпется куча левых сайтов, на котором моего скрипта точно нет. Вероятнее всего это боты лезут на сайт или китайцы пытаются его взломать. Вот мне и нужно отследить запуск скрипта с домена не из белого списка.
0
Невнимательный
 Аватар для ft4l
3112 / 1291 / 359
Регистрация: 08.02.2013
Сообщений: 7,566
Записей в блоге: 2
16.02.2025, 20:09
Toxa33rus, методом отсеивания нереальных данных только...
Но тогда кроме этого источника информации, ненадёжного,) нужно найти способ сопоставить с другой проверкой,
уже извне для подозреваемых серверов...
И предусмотеть такие варианты развития событий, когда возможно просто находят эту "закладку", обезвреживают,
и реально достоверных данных совсем отсутствует, зато просто из вредности запускаются потоки "дезы"
0
Заблокирован
16.02.2025, 20:37
Цитата Сообщение от Toxa33rus Посмотреть сообщение
Есть сайт mysite.com.
Цитата Сообщение от Toxa33rus Посмотреть сообщение
Вот мне и нужно отследить запуск скрипта с домена
PHP
1
2
3
4
5
6
header("X-Frame-Options: SAMEORIGIN");
if ($_SERVER['SERVER_NAME']!=='mysite.com')
{
    http_response_code(403);
    die();
}
2
1311 / 1003 / 232
Регистрация: 01.10.2018
Сообщений: 3,902
17.02.2025, 20:07
Цитата Сообщение от Toxa33rus Посмотреть сообщение
Почему так происходит? В каком случае сервер может выдавать имена других сайтов?
1. Маршрутизация (запросов на основе имен) хостов в Web-сервере неверно настроена (коду "сайта" передаются запросы для хостов с разными именами, в том числе и не определенными на сервере).
2. Web-сервер получил в строке запроса абсолютный URI и использовал его для маршрутизации хостов, причем оставил исходный заголовок Host (не подменил его значение значением из абсолютного URI).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2025, 20:07
Помогаю со студенческими работами здесь

$_SERVER["HTTP_HOST"] в классе
задаю элементарные переменные в классе а мне выдает что неверный синтаксис class MyClass{ private $home_page=$_SERVER; private...

Нужно что-бы, когда пользователь набирает просто адрес сайта в исходный документ вставлялся файл news.htm
Проблема вот в чём... Нужно что-бы, когда пользователь набирает просто адрес сайта в исходный документ вставлялся файл news.htm. Никак не...

Когда следует использовать dirname(__FILE__) или $_SERVER['DOCUMENT_ROOT']?
Если я экранизирую значения в браузере - я увижу dirname(__FILE__): C:\OpenServer\domains\example $_SERVER: ...

не работает полностью сервер то есть не выводит когда клиент подключился когда вышел и не отправляет строку
import socket sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) host = '192.168.0.26' port = 9090 sock.bind((host,port)) ...

Исходный файл содержит информацию: Имя, фамилия,отчество, номер телефона, адрес. Создать процедуру, которая выводит на экран по фамилии телефон, адрес
Исходный файл содержит информацию: Имя, фамилия,отчество, номер телефона, адрес. Создать процедуру, которая записывает во второй файл и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru