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

Форум PHP

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

 

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

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

тема: Коверкает пароль при передаче POST сокетами.
 
 автор: Бамси   (15.10.2007 в 18:51)   письмо автору
 
 

Надо написать тулз уодну под vkontakte.ru, для начала коненчо надо залогинется, но с этим какие то странные проблеммы, как обычно создаю сокет и передаю его на удаленных хост POST запросом...


<?php
$hostname 
"vkontakte.ru";
$email "EMAIL";
$pass "PASSWORD"

$fp fsockopen($hostname80$errno$errstr30);  
if (!
$fp) echo "$errstr ($errno)<br />\n";  
else 
{
 
$data "email=$email&pass=$pass\r\n\r\n"
 
 
$headers "POST /login.php 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";  
  
 
$headers .= "Connection: Close\r\n\r\n";  

 
fwrite($fp$headers.$data);   
 while (!
feof($fp)) 
 {  
   
$line .= fgets($fp1024);  
 }  
 
fclose($fp);  
}  
echo 
$line;
?>


В ответ получаю страницу о неправлиьном пароле.
Посмотрев html код я вижу такую тему:


<input class="inputText" type="text" name="email" value="EMAIL" id="email" size="25" />
<input class="inputText" type="password" name="pass" value="PASSWORD<br><br>" id="pass" size="25" />


К паролю неким образом добавляется <br><br>? Это как возможно?

   
 
 автор: bronenos   (15.10.2007 в 22:18)   письмо автору
 
   для: Бамси   (15.10.2007 в 18:51)
 

1. Вы же сами приписали в конце символы переноса строки. 2 партии.
2. Обрабатывайте хотя бы urlencode

   
 
 автор: Бамси   (15.10.2007 в 23:28)   письмо автору
 
   для: bronenos   (15.10.2007 в 22:18)
 

Ступил, извеняйте.
Только вот что он мне отвечает:

HTTP/1.1 302 Found
Server: nginx/0.5.30
Date: Mon, 15 Oct 2007 19:25:34 GMT
Content-Type: text/html; charset=windows-1251
Connection: close
X-Powered-By: PHP/5.2.0-8+etch7
Pragma: no-cache
Cache-control: private, must-revalidate
Set-Cookie: remixchk=2; expires=Tue, 14-Oct-2008 19:25:34 GMT; path=/; domain=.vkontakte.ru
Set-Cookie: remixmid=107294; expires=Tue, 14-Oct-2008 19:25:34 GMT; path=/; domain=.vkontakte.ru
Set-Cookie: remixemail=user%40mail.ru; expires=Tue, 14-Oct-2008 19:25:34 GMT; path=/; domain=.vkontakte.ru
Set-Cookie: remixpass=574e6e28ab4eab3f1d7a3aeec69f2729; expires=Tue, 14-Oct-2008 19:25:34 GMT; path=/; domain=.vkontakte.ru
Location: /id407694
Content-Length: 0


И все... А где страница? И т.д.

   
 
 автор: EXP   (16.10.2007 в 00:04)   письмо автору
 
   для: Бамси   (15.10.2007 в 23:28)
 

переадресация
302 Moved Temporarily
Затребованный URI перемещен, но лишь временно. Заголовок Location указывает на новое местонахождение. Сразу же после получения этого кода состояния клиент должен разрешить запрос при помощи нового URI, но во всех последующих запросах необходимо пользоваться старым URI.


вам надо после этого сразу создавать второй запрос и включать в нём все эти куки которые вам передают

   
 
 автор: Бамси   (16.10.2007 в 00:51)   письмо автору
 
   для: EXP   (16.10.2007 в 00:04)
 

Передаю след. запрос:

GET /id401194 HTTP/1.1
Host: vkontakte.ru
User-Agent: Opera/9.23 (Windows NT 5.1; U; ru)
Cookie: remixchk=2;
Cookie: remixmid=107294;
Cookie: remixemail=user%40mail.ru;
Cookie: remixpass=574e6e28ab4eab3f1d7a3aeec69f2729;
Connection: Close


Иходя из данных получеых в пред. запросе.

Теперь ошибка: "400 Bad Request"

   
 
 автор: mihdan   (16.10.2007 в 01:52)   письмо автору
 
   для: Бамси   (16.10.2007 в 00:51)
 

Нужно 2 запроса : один чтоб получить куку, второй чтоб перейти по указанному адресу и впарить серверу куку. Вообще это проще всего через курл делать там и куки сами по себе сохраняются и обратно шлются и 302 заголовок верно обрабатывается. Если хотите могу продать уже готовый скрипт - работает на 100 процентов (писался для очень солидной конторы). 3wmz. А так алгоритм вроде рассказал. Сам так делал.

   
 
 автор: Бамси   (16.10.2007 в 02:20)   письмо автору
 
   для: mihdan   (16.10.2007 в 01:52)
 

Мне он и даром не нужен, я не хочу покупать, я хочу научиться, что бы впоследующем невозникало таких проблем.
Вообщем я в пред. Неправильно куки слал, вот переделал:

GET /id407694 HTTP/1.1
Referer: http://vkontakte.ru/login.php?u=1
Host: vkontakte.ru
Cookie: remixchk=2; remixmid=102694; remixemail=user%40mail.ru; remixpass=5223e6123128ab6543452d7a7ac69f2729

Ему всеровно н енравится: 400 Bad Request

   
 
 автор: kasmanaft   (16.10.2007 в 07:41)   письмо автору
 
   для: Бамси   (16.10.2007 в 02:20)
 

Попробуй реферер http://vkontakte.ru/login.php

   
Rambler's Top100
вверх

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