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

Форум PHP

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

 

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

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

тема: Способ авторизации на чужом сайте
 
 автор: Inviseble_Demon   (23.05.2008 в 22:31)   письмо автору
 
 

Всеп приятного времени суток.
У меня возникла проблема я немогу пройти авторизацию на сайте.
На сайте используют куки и зишивают сесии в ссылки.
Я пытался сэмулировать браузер:
открыл сокет вписал заголовки и пост данные после получения куки пытался открыть сокет в который вписывал заголовки и куки но страница так и не появилась.
Потом я решил что если авторизацию пройти на сайте в который напихано всего что только можно. То можно пройти её хоть где.
=================
Взял сайт mail.ru
=================
И начал писать код но в нем чет точно не то (так как я болбес).

<?php
error_reporting(0);

$hostname = "win.mail.ru";
$path = "/cgi-bin/auth";
// Устанавливаем соединение, имя которого
// передано в параметре $hostname
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
// Проверяем успешность установки соединения
if (!$fp) echo "Ошибка соединения, code error $errstr ($errno)<br />\n";
else
{
// Формируем HTTP-заголовки для передачи
// его серверу
$headers = "GET $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Connection: Close\r\n\r\n";
// Отправляем HTTP-запрос серверу
fwrite($fp, $headers);
// Получаем ответ
while (!feof($fp))
{
$line = fgets($fp, 1024);
// Ищем строку вида
// Set-Cookie: ASP.NET_SessionId=di2x5amvmgxfswi4xt4fk455;
// Именно она устанавливает cookie
preg_match("|Set-Cookie: ASP.NET_SessionId=([\d\w]+);|i",$line,$out);
if(!empty($out[1]))
{
$SID = $out[1];
break;
}
}
fclose($fp);
}

$hostname = "win.mail.ru";
$path = "/cgi-bin/auth";
$line = "";

// Устанавливаем соединение, имя которого
// передано в параметре $hostname
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
// Проверяем успешность установки соединения
if (!$fp) echo "Ошибка соединения, code error $errstr ($errno)<br />\n";
else
{
// Данные POST-запроса
$data = "page=&post=&login_from=&Login=qwerty&Domain=mail.ru&Password=1234567890&\r\n\r\n";
// Формируем HTTP-заголовки для передачи
// его серверу
$headers = "POST $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen($data)."\r\n";
// Подделываем cookie
$headers .= "Cookie: ASP.NET_SessionId=$SID;\r\n";
$headers .= "Connection: Close\r\n\r\n";
// Отправляем HTTP-запрос серверу
fwrite($fp, $headers.$data);
// Получаем ответ
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose($fp);

return $line;
}
$str = file_get_contents('http://win.mail.ru/cgi-bin/start?back=1');
echo $str;

?>


Писал с книги. может просто неподходит для этого случия!?

------------------------------------------------------------------------------------------------

В обще мне просто требуется пройти авторизацию на сайте mail.ru после чего вывести страницу
http://win.mail.ru/cgi-bin/start?back=1 на которой можно перейти в папку входящии и т.д.
------------------------------------------------------------------------------------------------

Люди помогите кто чем может ПОЖАЛУЙСТА.

   
 
 автор: AcidTrash   (23.05.2008 в 23:28)   письмо автору
 
   для: Inviseble_Demon   (23.05.2008 в 22:31)
 

Врядли так получится.

P.S. А вы уверены, что на mail.ru в данном случае используется технология ASP.NET ?

   
Rambler's Top100
вверх

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