Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Location: http://www.hacker.com http://www.user.comwww.hacker.com" попал бы в "Host", а строка " http://www.user.com" (с пробелом) считалась бы страницей и попала в "GET".Firefox: Firefox не может найти сервер www.hacker.com%20httpChrome: Не удается найти DNS address сервера www.hacker.com%20httpIE: Не удается отобразить эту страницуLocation: http://www.hacker.com:http://www.user.comFirefox: Ошибка искажения содержимогоChrome: [молча ничего не загружает]IE: Не удается отобразить эту страницу $request = ServerRequestFactory::make();
$uri = $request->getUri();
<?= $_GET['id'] ?>request_fulluri boolean
Когда установлено в TRUE, весь URI будет использован при построении запроса. (Например, GET www.example.com/path/to/file.html HTTP/1.0). Хотя это нестандартный формат запроса, некоторые прокси-серверы требуют его.
По умолчанию значение FALSE.
`
<?php
$opts = array(
'http'=>array(
'method'=>"GET",
'request_fulluri' => true,
'header'=>"Host:www.hacker.com\r\n"
)
);
$context = stream_context_create($opts);
$fp = fopen('http://www.user.com/script_to_hack.php', 'r', false, $context);
if (! $fp) {
exit('error');
}
$contents = stream_get_contents($fp);
fclose($fp);
echo $contents;
`
минусуют совсем не те, кто хочет защитить свой код.
Host, что делает вашу "уязвимость" неприменимой вне зависимости от серверного языка и фреймворка.То есть да, защита на уровне настроек сервера работает, но если она «закрывает» дыры в программном коде, то это не повышает оценку надежности системы в целом.
Host, вы вынуждены писать свои собственные велосипеды, которые не факт, что будут надежнее.
И снова об уязвимости $_SERVER['HTTP_HOST']