Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: User_Agent через fsockopen()
 
 автор: defi   (05.01.2012 в 20:05)   письмо автору
 
 

В книге Симдянова и Кузнецова "Практика создания 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($hostname80$errno$errstr30);
if (!
$fp) echo "$errstr ($errno)<br />\n";
else
{
    
fwrite($fp$headers."\r\n");
    while (!
feof($fp))
    {
        
$line .= fgets($fp1024);
    }
    
fclose($fp);
}
echo 
$line;
?>

Этот скрипт находится у меня например в test2/index.php.
Перед тем как выполнить скрипт, запускаю программу HTTP Analyzer, которая показует все отправленные и полученные HTTP-заголовки, затем запускаю скрипт с Opera 9, по идее со слов авторов в HTTP Analyzer в заголовке User-Agent должно было появится, что я захожу с браузера Mozilla, но там появляется Opera.
Я не пойму это у авторов такая ошибка или я не так понял сам код, объясните пожалуйста?

  Ответить  
 
 автор: cheops   (05.01.2012 в 20:14)   письмо автору
 
   для: defi   (05.01.2012 в 20:05)
 

>идее со слов авторов в HTTP Analyzer в заголовке User-Agent должно было появится, что я захожу
>с браузера Mozilla, но там появляется Opera.
Плагин браузера вам покажет только те заголовки, которые отправляет браузер, то что отправляет скрипт - он не покажет, так как это делает не браузер, а скрипт. Поэтому выяснить реально отправленные HTTP-заголовки вы сможете только через журнал Web-сервера Apache. Посмотрите журнал и если скрипт сработал как надо в нем должна быть запись с переданным пользовательским агентом.

  Ответить  
 
 автор: defi   (05.01.2012 в 20:22)   письмо автору
 
   для: cheops   (05.01.2012 в 20:14)
 

>выяснить реально отправленные HTTP-заголовки вы сможете только через журнал Web-сервера Apache
А можете подсказать где именно это журнал Apache находится?

  Ответить  
 
 автор: cheops   (05.01.2012 в 20:25)   письмо автору
 
   для: defi   (05.01.2012 в 20:22)
 

Нужно найти в где у вас установлен Apache, в папке с программой будет подпапка logs, вам нужен файл в имени которого будет access - это журнал доступа к страницам.

  Ответить  
 
 автор: defi   (05.01.2012 в 20:29)   письмо автору
 
   для: cheops   (05.01.2012 в 20:25)
 

Этот файл у меня пустой, интерестно почему?

  Ответить  
 
 автор: cheops   (05.01.2012 в 20:33)   письмо автору
 
   для: defi   (05.01.2012 в 20:29)
 

Возможно вы настроили виртуальные хосты или запись логов в другой файл, там еще что-нибудь в этой папке есть?

  Ответить  
 
 автор: defi   (05.01.2012 в 20:54)   письмо автору
 
   для: cheops   (05.01.2012 в 20:33)
 

в этой папке 4-ре файла access.log error.log install.log httpd.pid

  Ответить  
 
 автор: cheops   (05.01.2012 в 20:56)   письмо автору
 
   для: defi   (05.01.2012 в 20:54)
 

У вас виртуальные хосты настроены? Как вообще Apache на машине появился, сами устанавливали или он был установлен в составе Денвера? Просто куда-то Apache логи должен писать (если не отключено). Нужно выяснить куда он их пишет и включить, если ведение логов отключено.

  Ответить  
 
 автор: defi   (05.01.2012 в 20:59)   письмо автору
 
   для: cheops   (05.01.2012 в 20:56)
 

Я отдельно устанавливал apache+mysql+php,
Устанавливал по manualu с сайта php-myadmin.ru
Наверно нужно ещё что-то настроить?

  Ответить  
 
 автор: cheops   (05.01.2012 в 21:38)   письмо автору
 
   для: defi   (05.01.2012 в 20:59)
 

При настройке связки вы настраивали виртуальные хосты? Т.е. прописывали путь к папке в контейнере <VirtualHost 127.0.0.1:80> или у вас только отдельный localhost, а скрипты вы размещаете в районе путей Apache?

  Ответить  
 
 автор: defi   (05.01.2012 в 21:56)   письмо автору
 
   для: 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 в 22:02)   письмо автору
 
   для: 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 ничего не написано.

  Ответить  
 
 автор: cheops   (05.01.2012 в 22:07)   письмо автору
 
   для: defi   (05.01.2012 в 22:02)
 

Значит нужно подключать, найдите в httpd.conf директиву LogFormat, а то и прямо в контейнере виртуального хоста её переопределите. Чтобы выводился пользовательский агент, нужно добавить ключ %{User-Agent}i. Подробности можно найти в статье по ссылке http://softtime.ru/article/index.php?id_article=99. После редактирования файла httpd.conf сервер, конечно, же нужно перезагрузить.

  Ответить  
 
 автор: cheops   (05.01.2012 в 22:04)   письмо автору
 
   для: defi   (05.01.2012 в 21:56)
 

Ага в поисках журнальных сообщений, вы смотрите, вот этот файл?
E:/apache/localhost/access.log
И он пуст?

  Ответить  
 
 автор: defi   (05.01.2012 в 22:13)   письмо автору
 
   для: 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 ничего не написано, почему?

  Ответить  
 
 автор: cheops   (05.01.2012 в 22:16)   письмо автору
 
   для: defi   (05.01.2012 в 22:13)
 

По умолчанию он не выводится, нужно подключить (см. мой пост выше).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования