|
|
|
| В книге Симдянова и Кузнецова "Практика создания Web-сайтов (2 издание)" нашёл такой раздел, который называется "3.3.7 Фальсификация пользовательского агента", вот сам код:
<?
$path = "/test/index.php";
$hostname = "localhost";
$headers = "GET $path HTTP/1.1\r\n";
$headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$headers .= "HOST: $hostname\r\n";
$headers .= "Connection: Close\r\n";
$line = "";
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
if (!$fp) echo "$errstr ($errno)<br />\n";
else
{
fwrite($fp, $headers."\r\n");
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose($fp);
}
echo $line;
?>
|
Этот скрипт находится у меня например в test2/index.php.
Перед тем как выполнить скрипт, запускаю программу HTTP Analyzer, которая показует все отправленные и полученные HTTP-заголовки, затем запускаю скрипт с Opera 9, по идее со слов авторов в HTTP Analyzer в заголовке User-Agent должно было появится, что я захожу с браузера Mozilla, но там появляется Opera.
Я не пойму это у авторов такая ошибка или я не так понял сам код, объясните пожалуйста? | |
|
|
|
|
|
|
|
для: defi
(05.01.2012 в 20:05)
| | >идее со слов авторов в HTTP Analyzer в заголовке User-Agent должно было появится, что я захожу
>с браузера Mozilla, но там появляется Opera.
Плагин браузера вам покажет только те заголовки, которые отправляет браузер, то что отправляет скрипт - он не покажет, так как это делает не браузер, а скрипт. Поэтому выяснить реально отправленные HTTP-заголовки вы сможете только через журнал Web-сервера Apache. Посмотрите журнал и если скрипт сработал как надо в нем должна быть запись с переданным пользовательским агентом. | |
|
|
|
|
|
|
|
для: cheops
(05.01.2012 в 20:14)
| | >выяснить реально отправленные HTTP-заголовки вы сможете только через журнал Web-сервера Apache
А можете подсказать где именно это журнал Apache находится? | |
|
|
|
|
|
|
|
для: defi
(05.01.2012 в 20:22)
| | Нужно найти в где у вас установлен Apache, в папке с программой будет подпапка logs, вам нужен файл в имени которого будет access - это журнал доступа к страницам. | |
|
|
|
|
|
|
|
для: cheops
(05.01.2012 в 20:25)
| | Этот файл у меня пустой, интерестно почему? | |
|
|
|
|
|
|
|
для: defi
(05.01.2012 в 20:29)
| | Возможно вы настроили виртуальные хосты или запись логов в другой файл, там еще что-нибудь в этой папке есть? | |
|
|
|
|
|
|
|
для: cheops
(05.01.2012 в 20:33)
| | в этой папке 4-ре файла access.log error.log install.log httpd.pid | |
|
|
|
|
|
|
|
для: defi
(05.01.2012 в 20:54)
| | У вас виртуальные хосты настроены? Как вообще Apache на машине появился, сами устанавливали или он был установлен в составе Денвера? Просто куда-то Apache логи должен писать (если не отключено). Нужно выяснить куда он их пишет и включить, если ведение логов отключено. | |
|
|
|
|
|
|
|
для: cheops
(05.01.2012 в 20:56)
| | Я отдельно устанавливал apache+mysql+php,
Устанавливал по manualu с сайта php-myadmin.ru
Наверно нужно ещё что-то настроить? | |
|
|
|
|
|
|
|
для: defi
(05.01.2012 в 20:59)
| | При настройке связки вы настраивали виртуальные хосты? Т.е. прописывали путь к папке в контейнере <VirtualHost 127.0.0.1:80> или у вас только отдельный localhost, а скрипты вы размещаете в районе путей Apache? | |
|
|
|
|
|
|
|
для: cheops
(05.01.2012 в 21:38)
| | По инструкции прописывал в файле http-vhosts.conf, который находится в config/extra следущее:
<VirtualHost *:80>
DocumentRoot "E:/apache/localhost/www"
ServerName localhost
ErrorLog "E:/apache/localhost/error.log"
CustomLog "E:/apache/localhost/access.log" common
</VirtualHost>
|
| |
|
|
|
|
|
|
|
для: defi
(05.01.2012 в 21:56)
| | Я нашёл где находится этот файл, в корневой папке localhost, при запуске скрипта выдало следующее:
127.0.0.1 - - [05/Jan/2012:19:59:14 +0200] "GET /test2/index.php HTTP/1.1" 200 -
127.0.0.1 - - [05/Jan/2012:19:59:14 +0200] "GET /test/index.php HTTP/1.1" 200 996
|
что-то про User-Agent ничего не написано. | |
|
|
|
|
|
|
|
для: defi
(05.01.2012 в 22:02)
| | Значит нужно подключать, найдите в httpd.conf директиву LogFormat, а то и прямо в контейнере виртуального хоста её переопределите. Чтобы выводился пользовательский агент, нужно добавить ключ %{User-Agent}i. Подробности можно найти в статье по ссылке http://softtime.ru/article/index.php?id_article=99. После редактирования файла httpd.conf сервер, конечно, же нужно перезагрузить. | |
|
|
|
|
|
|
|
для: defi
(05.01.2012 в 21:56)
| | Ага в поисках журнальных сообщений, вы смотрите, вот этот файл?
E:/apache/localhost/access.log
| И он пуст? | |
|
|
|
|
|
|
|
для: cheops
(05.01.2012 в 22:04)
| | в этом файле:
E:/apache/localhost/access.log
|
взял последние две строки после выполнения скрипта:
127.0.0.1 - - [05/Jan/2012:19:59:14 +0200] "GET /test2/index.php HTTP/1.1" 200 -
127.0.0.1 - - [05/Jan/2012:19:59:14 +0200] "GET /test/index.php HTTP/1.1" 200 996
|
но про User-Agent ничего не написано, почему? | |
|
|
|
|
|
|
|
для: defi
(05.01.2012 в 22:13)
| | По умолчанию он не выводится, нужно подключить (см. мой пост выше). | |
|
|
|