За последние 24 часа нас посетили 16757 программистов и 1642 робота. Сейчас ищут 1146 программистов ...

Куки из ниоткуда!

Тема в разделе "Прочие вопросы по PHP", создана пользователем Raa, 5 авг 2006.

  1. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Привет, народ! Пришел к вам после того, как меня с бесцеремонно погнали с форума на phpclub.ru. Надеюсь, на страницах вашего форума разрешено говорить о стандартных библиотеках PHP, и никто не станет предвзято делать выводы по поводу того, что и для чего я делаю. Спасибо за понимание.

    У меня возникла интересная проблемка. Банальная ситуация: пишу робота, который должен логиниться на сайт с заданными параметрами, и производить какие-то манипуляции. Юзаю курл. Страница логина замудренная с двумя перенаправлениями. Схема действий следующая:

    1. Посылаю пост. Получаю куки и новый локэйшин.
    2. Открываю локэйшин, передавая куки. Получаю новый локэйшин.
    3. Открываю новый локэйшин, передавая куки...

    До этого вроде бы все правильно шло. Но! В ответ получаю страницу логина! Тщательно перепроверил данные формы, которые я посылаю, убедился, что правильно формирую куки. Все равно не выходит сэмулировать поведение браузера. Я наконец запускаю Ethereal и начинаю анализировать запросы и ответы, которые выполняет браузер. Браузер ведет себя практически так же вплоть до третьего запроса: здесь он открывает новый локэйшин, и передает НОВЫЙ набор куков!!! Но первый ответ на запрос устанавливает только старые куки, а второй вообще не содержит в заголовков Set-Cookie. Я очищал куки, но браузер снова их от куда-то берет! Пересмотрел HTML, думал может через мета-тэги... И там нет! А жаваскриптами там тем более не пахнет. Только сухие сообщения типа "Page moved". Что за чудеса? Разве есть еще способы устанавливать куки?
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    пациента и код
     
  3. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    :))

    Пациента зовут chat.mail.ru. Хочу написать бота и запустить его в любимую комнату. Тока вот войти в комнату как раз и не получается :)

    Вот код, который не хочет работать.

    Код (Text):
    1.  
    2. $aConf = array(
    3.     'login' => array(
    4.         'url' => 'http://my.chat.mail.ru/cgi-bin/auth',
    5.         'form' => array(
    6.             'page'       => 'http://chat.mail.ru/',
    7.             'FailPage'   => 'http://chat.mail.ru/data-xml/erlogin.html',
    8.             'enter'      => '1812',
    9.             'mra'        => '',
    10.             'mra_status' => '',
    11.             'signore'    => '',
    12.             'silent'     => '',
    13.             'Login'      => 'bot',
    14.             'Domain'     => 'mail.ru',
    15.             'Password'   => 'bot',
    16.             'nick'       => 'Бот',
    17.             'nickcolor'  => '3', // Red
    18.             'textcolor'  => '3', // Red
    19.             'roomleft'   => '',
    20.             'room'       => '1089056',
    21.             'silent_ch'  => '',
    22.             'signore_ch' => '',
    23.         ),
    24.     ),
    25.     'log' => array(
    26.         'error_reporting' => E_ALL,
    27.     ),
    28. );
    29.  
    30.  
    31.  
    32. error_reporting($aConf['log']['error_reporting']);
    33.  
    34.  
    35. $aCookies = array();
    36.  
    37. // Authentication
    38. $sResponse = doHttpQuery(
    39.     $aConf['login']['url'], true, null, makeQueryString($aConf['login']['form'])
    40. );
    41. $aCookies += getCookies($sResponse);
    42. echo "\n============================\n\n";
    43. echo makeCookiesString($aCookies);
    44. echo "\n============================\n\n";
    45. echo $sResponse;
    46.  
    47. $sRedirectUrl = getHeader($sResponse, 'Location');
    48. $iRedirectCount = 1;
    49. while (isset($sRedirectUrl)) {
    50.     $sResponse = doHttpQuery($sRedirectUrl, true, makeCookiesString($aCookies));
    51.     $aCookies += getCookies($sResponse);
    52.     echo "\n============================\n\n";
    53.     echo makeCookiesString($aCookies);
    54.     echo "\n============================\n\n";
    55.     echo $sResponse;
    56.     $sRedirectUrl = getHeader($sResponse, 'Location');
    57.     $iRedirectCount++;
    58.     if ($iRedirectCount > 10) {
    59.         die;
    60.     }
    61. }
    62.  
    63.  
    64. $sResponse = doHttpQuery(
    65.     'http://chat.mail.ru/cgi-xml/chat', true, makeCookiesString($aCookies)
    66. );
    67. $aCookies += getCookies($sResponse);
    68. echo "\n============================\n\n";
    69. echo $sResponse;
    70.  
    71.  
    72. function makeQueryString($aParameters) {
    73.     $sQueryString = '';
    74.     foreach ($aParameters as $sName => $sValue) {
    75.         if ($sQueryString != '') $sQueryString .= '&';
    76.         $sQueryString .= urlencode($sName).'='.urlencode($sValue);
    77.     }
    78.     return $sQueryString;
    79. }
    80.  
    81. function makeCookiesString($aParameters) {
    82.     $sQueryString = '';
    83.     foreach ($aParameters as $sName => $sValue) {
    84.         if ($sQueryString != '') $sQueryString .= '; ';
    85.         $sQueryString .= $sName.'='.$sValue;
    86.     }
    87.     return $sQueryString;
    88. }
    89.  
    90. function getCookies($sResponse) {
    91.     $aCookies = array();
    92.     $aCookieMatches = getHeader($sResponse, 'Set-Cookie', true);
    93.     foreach ($aCookieMatches as $sCookie) {
    94.         preg_match_all('/([^=;\s]*)=([^;$]*)/', $sCookie, $aMatches);
    95.         $iExpires = null;
    96.         for ($i = 1; $i < count($aMatches[0]); $i++) {
    97.             if (strtolower($aMatches[1][$i]) == 'expires') {
    98.                 $iExpires = strtotime($aMatches[2][$i]);
    99.                 break;
    100.             }
    101.         }
    102.         $sName = urldecode($aMatches[1][0]);
    103.         if (!isset($iExpires) || $iExpires > time()) {
    104.             $aCookies[$sName] = urldecode($aMatches[2][0]);
    105.         }
    106.         elseif ($iExpires <= time() && isset($aCookies[$sName])) {
    107.             unset($aCookies[$sName]);
    108.         }
    109.     }
    110.     return $aCookies;
    111. }
    112.  
    113. function getHeader($sResponse, $sName, $bArray = false) {
    114.     $sRegExp = '/^'.preg_quote($sName).':\s+([^\n]*)/im';
    115.     preg_match_all($sRegExp, $sResponse, $aMatches);
    116.     if ($bArray) {
    117.         return $aMatches[1];
    118.     }
    119.     elseif (count($aMatches[1]) > 0) {
    120.         return $aMatches[1][0];
    121.     }
    122.     else {
    123.         return null;
    124.     }
    125. }
    126.  
    127. function doHttpQuery(
    128.     $sUrl, $bHeader = true, $sCookies = null, $sPostData = null)
    129. {
    130.     $rCurl = curl_init($sUrl);
    131.     curl_setopt($rCurl, CURLOPT_HEADER, (int)$bHeader); // Include header
    132.     curl_setopt($rCurl, CURLOPT_RETURNTRANSFER, 1); // No print
    133.     if (isset($sCookies)) {
    134.         curl_setopt($rCurl, CURLOPT_COOKIE, $sCookies); // Send cookie
    135.     }
    136.     if (isset($sPostData)) {
    137.         curl_setopt($rCurl, CURLOPT_POST, 1); // Use POST
    138.         curl_setopt($rCurl, CURLOPT_POSTFIELDS, $sPostData); // POST data
    139.     }
    140.     $sResponse = curl_exec($rCurl);
    141.     curl_close($rCurl);
    142.     return $sResponse;
    143. }
     
  4. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Я так подумал и решил все-таки убрать логин и пароль из конфига :) Так что для запуска скрипта нужно указать свой аккаунт :)
     
  5. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Вот это, наверное, будет полезнее, чем код скрипта. Потому что сам скрипт ведет себя абсолюнто адекватно ответам сервера. Т.е. реакция скрипта именно такая, какой я добивался. Ниже я привожу распечатку пакетов между сервером и браузером (не скриптом). Особо интересым мне представляется последний заголовок в последнем запросе:

    Код (Text):
    1.  
    2. Cookie: Login=*******; Domain=mail.ru;
    3. nick=%u0428%u0435%u043B%u0443%u0434%u0438%u0432%u044B%
    4. u0439_%u041A%u043E%u0442; nickcolor=3; textcolor=3;
    5. room=1089056; silent=0; signore=0; MailUser=1;
    6. Mpop=1154770654:577f475f035b7a7b19050219091d011
    Именно в них и проблема. Если браузер отсылает эти куки серверу, то он должен их от куда-то получать. Но во всех предыдущих ответах сервера нету соответствующих кук. Поэтому мой скрипт, в отличие от браузера, с последним запросом не отправляет новые куки. Он просто не знает о них. Можно, конечно, это захардкодить, а вопрос не в этом, а скорее принципиальный. Получается, что есть другой способ принимать куки, кроме как заголовков Set-Cookie. Браузер этот способ знает, а мой скрипт не знает. Потому что, собственно говоря, я и сам не могй понять, что это за способ :)

    Код (Text):
    1.  
    2. No.     Time        Source                Destination           Protocol Info
    3.       6 0.236587    192.168.20.5          194.67.23.233         HTTP     POST
    4. /cgi-bin/auth HTTP/1.1 (application/x-www-form-urlencoded)
    5.  
    6. Frame 6 (420 bytes on wire, 420 bytes captured)
    7. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    8. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    9. (194.67.23.233)
    10. Transmission Control Protocol, Src Port: 4232 (4232), Dst Port: http (80),
    11. Seq: 470, Ack: 1, Len: 366
    12. Reassembled TCP Segments (835 bytes): #4(469), #6(366)
    13. Hypertext Transfer Protocol
    14.     POST /cgi-bin/auth HTTP/1.1\r\n
    15.         Request Method: POST
    16.         Request URI: /cgi-bin/auth
    17.         Request Version: HTTP/1.1
    18.     Host: my.chat.mail.ru\r\n
    19.     User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.6)
    20. Gecko/20060728 Firefox/1.5.0.6\r\n
    21.     Accept: text/xml,application/xml,application/xhtml+xml,text/html;
    22. q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n
    23.     Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n
    24.     Accept-Encoding: gzip,deflate\r\n
    25.     Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n
    26.     Keep-Alive: 300\r\n
    27.     Connection: keep-alive\r\n
    28.     Referer: http://chat.mail.ru/\r\n
    29.     Content-Type: application/x-www-form-urlencoded\r\n
    30.     Content-Length: 294\r\n
    31.     \r\n
    32. Line-based text data: application/x-www-form-urlencoded
    33.     page=http%3A%2F%2Fchat.mail.ru%2F&FailPage=http%3A%2F%
    34. 2Fchat.mail.ru%2Fdata-xml%2Ferlogin.html&enter=1812&signore=&
    35. silent=&mra=&mra_status=&signore=&silent=&Login=*******&
    36. Domain=mail.ru&Password=*********&nick=%D8%E5%EB%F3%E4%
    37. E8%E2%FB%E9_%
    38.  
    39. No.     Time        Source                Destination           Protocol Info
    40.       7 0.355416    194.67.23.233         192.168.20.5          TCP      http >
    41. 4232 [ACK] Seq=1 Ack=836 Win=7504 Len=0
    42.  
    43. Frame 7 (60 bytes on wire, 60 bytes captured)
    44. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    45. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    46. (192.168.20.5)
    47. Transmission Control Protocol, Src Port: http (80), Dst Port: 4232 (4232),
    48. Seq: 1, Ack: 836, Len: 0
    49.  
    50. No.     Time        Source                Destination           Protocol Info
    51.       8 0.399570    194.67.23.233         192.168.20.5          TCP      [TCP
    52. segment of a reassembled PDU]
    53.  
    54. Frame 8 (1506 bytes on wire, 1506 bytes captured)
    55. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    56. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    57. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    58. (192.168.20.5)
    59. Transmission Control Protocol, Src Port: http (80), Dst Port: 4232 (4232),
    60. Seq: 1, Ack: 836, Len: 1452
    61.  
    62. No.     Time        Source                Destination           Protocol Info
    63.       9 0.403782    194.67.23.233         192.168.20.5          TCP      [TCP
    64. segment of a reassembled PDU]
    65.  
    66. Frame 9 (1293 bytes on wire, 1293 bytes captured)
    67. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    68. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    69. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    70. (192.168.20.5)
    71. Transmission Control Protocol, Src Port: http (80), Dst Port: 4232 (4232),
    72. Seq: 1453, Ack: 836, Len: 1239
    73.  
    74. No.     Time        Source                Destination           Protocol Info
    75.      10 0.404886    192.168.20.5          194.67.23.233         TCP      4232
    76. > http [ACK] Seq=836 Ack=2692 Win=65535 Len=0
    77.  
    78. Frame 10 (54 bytes on wire, 54 bytes captured)
    79. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    80. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    81. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    82. (194.67.23.233)
    83. Transmission Control Protocol, Src Port: 4232 (4232), Dst Port: http (80),
    84. Seq: 836, Ack: 2692, Len: 0
    85.  
    86. No.     Time        Source                Destination           Protocol Info
    87.      11 0.407230    194.67.23.233         192.168.20.5          HTTP    
    88. HTTP/1.1 302 Found (text/html)
    89.  
    90. Frame 11 (756 bytes on wire, 756 bytes captured)
    91. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    92. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    93. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    94. (192.168.20.5)
    95. Transmission Control Protocol, Src Port: http (80), Dst Port: 4232 (4232),
    96. Seq: 2692, Ack: 836, Len: 702
    97. Reassembled TCP Segments (3393 bytes): #8(1452), #9(1239),
    98. #11(702)
    99. Hypertext Transfer Protocol
    100.     HTTP/1.1 302 Found\r\n
    101.         Request Version: HTTP/1.1
    102.         Response Code: 302
    103.     Date: Sat, 05 Aug 2006 09:37:33 GMT\r\n
    104.     Server: 3WservRT 2001, VxWorks 5.4\r\n
    105.     Set-Cookie: ticket=; path=/; expires=Thu, 16 Oct 2003 09:37:34 GMT;
    106. domain=.mail.ru\r\n
    107.     Set-Cookie: ticket=; path=/; expires=Thu, 16 Oct 2003 09:37:34 GMT;
    108. domain=.chat.mail.ru\r\n
    109.     P3P: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID PSAo PSDo
    110. OUR BUS UNI NAV STA INT"\r\n
    111.     Set-Cookie: MailUser=1; expires=Fri, 03 Nov 2006 09:37:34 GMT;
    112. path=/; domain=.mail.ru\r\n
    113.     Pragma: no-cache\r\n
    114.     Cache-Control: private\r\n
    115.     Set-Cookie: Mpop=1154770654:577f475f035b7a7b19050219091d011b0005034f6
    116. a5d5e465e0107041b01027b1f455058665a5e44105a545e591f4642:
    117. *******@mail.ru:; path=/; expires=Fri, 03 Nov 2006 09:37:34 GMT;
    118. domain=.mail.ru\r\n
    119.     Set-Cookie: t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    120. AAAAAAAAAAAAABAAABAAAAAAAAAAAAAAEBvAcA; path=/;
    121. expires=Thu, 01 Feb 2007 09:37:34 GMT; domain=.mail.ru\r\n
    122.     Location: http://my.chat.mail.ru/cgi-bin/checkcookie?id=577f475f035b7a7b1905
    123. 0219091d011b0005034f6a5d5e465e0107041b01027b1f455058665a5e4
    124. 4105a545e591f4642&user=*******&domain=mail.ru&page=http%3a%
    125. 2f%2fchat.mail.ru%2f%3fmra%3d%26roomleft%3d%2
    126.     Connection: close\r\n
    127.     Transfer-Encoding: chunked\r\n
    128.     Content-Type: text/html\r\n
    129.     \r\n
    130.     HTTP chunked response
    131. Line-based text data: text/html
    132.    
    133.     <html>
    134.     <head><title>Redirect to http://my.chat.mail.ru/cgi-bin/checkcookie?
    135. id=577f475f035b7a7b19050219091d011b0005034f6a5d5e465e0107041b
    136. 01027b1f455058665a5e44105a545e591f4642&user=*******&
    137. domain=mail.ru&page=http%3a%2f%2fchat.mail.ru%2f%3fmra%3d%
    138.     <body><a href="http://my.chat.mail.ru/cgi-bin/checkcookie?
    139. id=577f475f035b7a7b19050219091d011b0005034f6a5d5e465e0107041
    140. b01027b1f455058665a5e44105a545e591f4642&user=*******&
    141. domain=mail.ru&page=http%3a%2f%2fchat.mail.ru%2f%3fmra%3d%
    142. 26roomleft
    143.     </html>
    144.     <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    145.     <HTML><HEAD>
    146.     <TITLE>302 Found</TITLE>
    147.     </HEAD><BODY>
    148.     <H1>Found</H1>
    149.     The document has moved <A HREF="http://my.chat.mail.ru/cgi-bin/
    150. checkcookie?id=577f475f035b7a7b19050219091d011b0005034f6a5d5e
    151. 465e0107041b01027b1f455058665a5e44105a545e591f4642&amp;
    152. user=*******&amp;domain=mail.ru&amp;page=http%3a%2f%2f
    153. chat.m
    154.     <HR>
    155.     <ADDRESS>3WservRT 2001, VxWorks 5.4 Server at my.chat.mail.ru
    156. Port 80</ADDRESS>
    157.     </BODY></HTML>
    158.  
    159. No.     Time        Source                Destination           Protocol Info
    160.      12 0.425357    192.168.20.5          194.67.23.233         TCP      4232
    161. > http [ACK] Seq=836 Ack=3395 Win=64833 Len=0
    162.  
    163. Frame 12 (54 bytes on wire, 54 bytes captured)
    164. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    165. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    166. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    167. (194.67.23.233)
    168. Transmission Control Protocol, Src Port: 4232 (4232), Dst Port: http (80),
    169. Seq: 836, Ack: 3395, Len: 0
    170.  
    171. No.     Time        Source                Destination           Protocol Info
    172.      13 0.425838    192.168.20.5          194.67.23.233         TCP      4232
    173. > http [FIN, ACK] Seq=836 Ack=3395 Win=64833 Len=0
    174.  
    175. Frame 13 (54 bytes on wire, 54 bytes captured)
    176. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    177. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    178. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    179. (194.67.23.233)
    180. Transmission Control Protocol, Src Port: 4232 (4232), Dst Port: http (80),
    181.  Seq: 836, Ack: 3395, Len: 0
    182.  
    183. No.     Time        Source                Destination           Protocol Info
    184.      14 0.454247    192.168.20.5          194.67.23.233         TCP      4233
    185. > http [SYN] Seq=0 Ack=0 Win=65535 Len=0 MSS=1460
    186.  
    187. Frame 14 (62 bytes on wire, 62 bytes captured)
    188. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    189. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    190. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    191. (194.67.23.233)
    192. Transmission Control Protocol, Src Port: 4233 (4233), Dst Port: http (80),
    193. Seq: 0, Ack: 0, Len: 0
    194.  
    195. No.     Time        Source                Destination           Protocol Info
    196.      15 0.535264    194.67.23.233         192.168.20.5          TCP      http >
    197. 4232 [ACK] Seq=3395 Ack=837 Win=7504 Len=0
    198.  
    199. Frame 15 (60 bytes on wire, 60 bytes captured)
    200. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    201. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    202. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    203. (192.168.20.5)
    204. Transmission Control Protocol, Src Port: http (80), Dst Port: 4232 (4232),
    205. Seq: 3395, Ack: 837, Len: 0
    206.  
    207. No.     Time        Source                Destination           Protocol Info
    208.      16 0.575074    194.67.23.233         192.168.20.5          TCP      http >
    209. 4233 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1452
    210.  
    211. Frame 16 (62 bytes on wire, 62 bytes captured)
    212. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    213. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    214. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    215. (192.168.20.5)
    216. Transmission Control Protocol, Src Port: http (80), Dst Port: 4233 (4233),
    217. Seq: 0, Ack: 1, Len: 0
    218.  
    219. No.     Time        Source                Destination           Protocol Info
    220.      17 0.584306    192.168.20.5          194.67.23.233         TCP      4233
    221. > http [ACK] Seq=1 Ack=1 Win=65535 Len=0
    222.  
    223. Frame 17 (54 bytes on wire, 54 bytes captured)
    224. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    225. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    226. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    227. (194.67.23.233)
    228. Transmission Control Protocol, Src Port: 4233 (4233), Dst Port: http (80),
    229. Seq: 1, Ack: 1, Len: 0
    230.  
    231. No.     Time        Source                Destination           Protocol Info
    232.      18 0.590703    192.168.20.5          194.67.23.233         HTTP     GET
    233. /cgi-bin/checkcookie?id=577f475f035b7a7b19050219091d011b0005034f
    234. 6a5d5e465e0107041b01027b1f455058665a5e44105a545e591f4642&
    235. user=*******&domain=mail.ru&page=http%3a%2f%2fchat.mail.ru%2f
    236. %3fmra%3d%26roomleft%3d%26nick%3d%25d8%25e5%25eb%25f3
    237. %25e4%25e8%25e2%25fb%25e9_%25ca%25ee%25f2%26room%3d
    238. 1089056%26enter%3d1812%26signore%3d%2500%26mra_status%3d
    239. %26textcolor%3d3%26nickcolor%3d3%26silent%3d%2500 HTTP/1.1
    240.  
    241. Frame 18 (1145 bytes on wire, 1145 bytes captured)
    242. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    243. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    244. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    245. (194.67.23.233)
    246. Transmission Control Protocol, Src Port: 4233 (4233), Dst Port: http (80),
    247. Seq: 1, Ack: 1, Len: 1091
    248. Hypertext Transfer Protocol
    249.     GET /cgi-bin/checkcookie?id=577f475f035b7a7b19050219091d011b
    250. 0005034f6a5d5e465e0107041b01027b1f455058665a5e44105a545e591
    251. f4642&user=*******&domain=mail.ru&page=http%3a%2f%2f
    252. chat.mail.ru%2f%3fmra%3d%26roomleft%3d%26nick%3d%25d8%25
    253. e5%25eb%25f3
    254.         Request Method: GET
    255.         Request URI [truncated]: /cgi-bin/checkcookie?id=577f475f035b7
    256. a7b19050219091d011b0005034f6a5d5e465e0107041b01027b1f455058
    257. 665a5e44105a545e591f4642&user=*******&domain=mail.ru&page=
    258. http%3a%2f%2fchat.mail.ru%2f%3fmra%3d%26roomleft%3d%26nick
    259. %3
    260.         Request Version: HTTP/1.1
    261.     Host: my.chat.mail.ru\r\n
    262.     User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.6)
    263. Gecko/20060728 Firefox/1.5.0.6\r\n
    264.     Accept: text/xml,application/xml,application/xhtml+xml,text/html;
    265. q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n
    266.     Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n
    267.     Accept-Encoding: gzip,deflate\r\n
    268.     Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n
    269.     Keep-Alive: 300\r\n
    270.     Connection: keep-alive\r\n
    271.     Referer: http://chat.mail.ru/\r\n
    272.     Cookie: MailUser=1; Mpop=1154770654:577f475f035b7a7b1905021
    273. 9091d011b0005034f6a5d5e465e0107041b01027b1f455058665a5e4410
    274. 5a545e591f4642:*******@mail.ru:; t=obLD1AAAAAAIAAAAAAAAAAA
    275. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAA
    276. AAAAAAAAEBvA
    277.     \r\n
    278.  
    279. No.     Time        Source                Destination           Protocol Info
    280.      19 0.715870    194.67.23.233         192.168.20.5          TCP      http >
    281. 4233 [ACK] Seq=1 Ack=1092 Win=7637 Len=0
    282.  
    283. Frame 19 (60 bytes on wire, 60 bytes captured)
    284. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    285. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    286. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    287. (192.168.20.5)
    288. Transmission Control Protocol, Src Port: http (80), Dst Port: 4233 (4233),
    289. Seq: 1, Ack: 1092, Len: 0
    290.  
    291. No.     Time        Source                Destination           Protocol Info
    292.      20 0.728242    194.67.23.233         192.168.20.5          TCP      [TCP
    293. segment of a reassembled PDU]
    294.  
    295. Frame 20 (969 bytes on wire, 969 bytes captured)
    296. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    297. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    298. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    299. (192.168.20.5)
    300. Transmission Control Protocol, Src Port: http (80), Dst Port: 4233 (4233),
    301.  Seq: 1, Ack: 1092, Len: 915
    302.  
    303. No.     Time        Source                Destination           Protocol Info
    304.      21 0.730158    194.67.23.233         192.168.20.5          HTTP    
    305. HTTP/1.1 302 Found (text/html)
    306.  
    307. Frame 21 (528 bytes on wire, 528 bytes captured)
    308. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    309. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    310. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    311. (192.168.20.5)
    312. Transmission Control Protocol, Src Port: http (80), Dst Port: 4233 (4233),
    313. Seq: 916, Ack: 1092, Len: 474
    314. Reassembled TCP Segments (1389 bytes): #20(915), #21(474)
    315. Hypertext Transfer Protocol
    316.     HTTP/1.1 302 Found\r\n
    317.         Request Version: HTTP/1.1
    318.         Response Code: 302
    319.     Date: Sat, 05 Aug 2006 09:37:34 GMT\r\n
    320.     Server: 3WservRT 2001, VxWorks 5.4\r\n
    321.     Location: http://chat.mail.ru/?mra=&roomleft=&nick=%d8%e5%eb
    322. %f3%e4%e8%e2%fb%e9_%ca%ee%f2&room=1089056&enter=1812
    323. &signore=%00&mra_status=&textcolor=3&nickcolor=3&silent=%00\r\n
    324.     Connection: close\r\n
    325.     Transfer-Encoding: chunked\r\n
    326.     Content-Type: text/html\r\n
    327.     \r\n
    328.     HTTP chunked response
    329. Line-based text data: text/html
    330.     <html>
    331.     <head><title>Redirect to http://chat.mail.ru/?mra=&roomleft=&nick=
    332. %d8%e5%eb%f3%e4%e8%e2%fb%e9_%ca%ee%f2&room=1089056
    333. &enter=1812&signore=%00&mra_status=&textcolor=3&nickcolor=3&
    334. silent=%00</title></head>
    335.     <body><a href="http://chat.mail.ru/?mra=&roomleft=&nick=%d8%e5
    336. %eb%f3%e4%e8%e2%fb%e9_%ca%ee%f2&room=1089056&
    337. enter=1812&signore=%00&mra_status=&textcolor=3&nickcolor=3&
    338. silent=%00">http://chat.mail.ru/?mra=&roomleft=&nick=%d8%e5
    339. %eb%f3%e4%e8%e
    340.     </html>
    341.     <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    342.     <HTML><HEAD>
    343.     <TITLE>302 Found</TITLE>
    344.     </HEAD><BODY>
    345.     <H1>Found</H1>
    346.     The document has moved <A HREF="http://chat.mail.ru/?mra=&amp;
    347. roomleft=&amp;nick=%d8%e5%eb%f3%e4%e8%e2%fb%e9_%ca%ee
    348. %f2&amp;room=1089056&amp;enter=1812&amp;signore=%00&amp;
    349. mra_status=&amp;textcolor=3&amp;nickcolor=3&amp;silent=%00">
    350. here</A>
    351.     <HR>
    352.     <ADDRESS>3WservRT 2001, VxWorks 5.4 Server at my.chat.mail.ru
    353. Port 80</ADDRESS>
    354.     </BODY></HTML>
    355.  
    356. No.     Time        Source                Destination           Protocol Info
    357.      22 0.731461    194.67.23.233         192.168.20.5          TCP      http >
    358. 4233 [FIN, ACK] Seq=1390 Ack=1092 Win=7637 Len=0
    359.  
    360. Frame 22 (60 bytes on wire, 60 bytes captured)
    361. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    362. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    363. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    364. (192.168.20.5)
    365. Transmission Control Protocol, Src Port: http (80), Dst Port: 4233 (4233),
    366. Seq: 1390, Ack: 1092, Len: 0
    367.  
    368. No.     Time        Source                Destination           Protocol Info
    369.      23 0.747392    192.168.20.5          194.67.23.233         TCP      4233
    370. > http [ACK] Seq=1092 Ack=1390 Win=64146 Len=0
    371.  
    372. Frame 23 (54 bytes on wire, 54 bytes captured)
    373. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    374. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    375. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    376. (194.67.23.233)
    377. Transmission Control Protocol, Src Port: 4233 (4233), Dst Port: http (80),
    378. Seq: 1092, Ack: 1390, Len: 0
    379.  
    380. No.     Time        Source                Destination           Protocol Info
    381.      24 0.747944    192.168.20.5          194.67.23.233         TCP      4233
    382. > http [ACK] Seq=1092 Ack=1391 Win=64146 Len=0
    383.  
    384. Frame 24 (54 bytes on wire, 54 bytes captured)
    385. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    386. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    387. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    388. (194.67.23.233)
    389. Transmission Control Protocol, Src Port: 4233 (4233), Dst Port: http (80),
    390. Seq: 1092, Ack: 1391, Len: 0
    391.  
    392. No.     Time        Source                Destination           Protocol Info
    393.      25 0.750763    192.168.20.5          194.67.23.233         TCP      4233
    394. > http [FIN, ACK] Seq=1092 Ack=1391 Win=64146 Len=0
    395.  
    396. Frame 25 (54 bytes on wire, 54 bytes captured)
    397. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    398. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    399. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.233
    400. (194.67.23.233)
    401. Transmission Control Protocol, Src Port: 4233 (4233), Dst Port: http (80),
    402. Seq: 1092, Ack: 1391, Len: 0
    403.  
    404. No.     Time        Source                Destination           Protocol Info
    405.      26 0.791584    192.168.20.5          194.67.23.151         TCP      4234
    406. > http [SYN] Seq=0 Ack=0 Win=65535 Len=0 MSS=1460
    407.  
    408. Frame 26 (62 bytes on wire, 62 bytes captured)
    409. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    410. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    411. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.151
    412. (194.67.23.151)
    413. Transmission Control Protocol, Src Port: 4234 (4234), Dst Port: http (80),
    414. Seq: 0, Ack: 0, Len: 0
    415.  
    416. No.     Time        Source                Destination           Protocol Info
    417.      27 0.854297    194.67.23.233         192.168.20.5          TCP      http >
    418. 4233 [ACK] Seq=1391 Ack=1093 Win=7637 Len=0
    419.  
    420. Frame 27 (60 bytes on wire, 60 bytes captured)
    421. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    422. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    423. Internet Protocol, Src: 194.67.23.233 (194.67.23.233), Dst: 192.168.20.5
    424. (192.168.20.5)
    425. Transmission Control Protocol, Src Port: http (80), Dst Port: 4233 (4233),
    426. Seq: 1391, Ack: 1093, Len: 0
    427.  
    428. No.     Time        Source                Destination           Protocol Info
    429.      28 0.889942    194.67.23.151         192.168.20.5          TCP      http >
    430. 4234 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1452
    431.  
    432. Frame 28 (62 bytes on wire, 62 bytes captured)
    433. Ethernet II, Src: EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e), Dst:
    434. Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a)
    435. Internet Protocol, Src: 194.67.23.151 (194.67.23.151), Dst: 192.168.20.5
    436. (192.168.20.5)
    437. Transmission Control Protocol, Src Port: http (80), Dst Port: 4234 (4234),
    438. Seq: 0, Ack: 1, Len: 0
    439.  
    440. No.     Time        Source                Destination           Protocol Info
    441.      29 0.898954    192.168.20.5          194.67.23.151         TCP      4234
    442. > http [ACK] Seq=1 Ack=1 Win=65535 Len=0
    443.  
    444. Frame 29 (54 bytes on wire, 54 bytes captured)
    445. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    446. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    447. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.151
    448. (194.67.23.151)
    449. Transmission Control Protocol, Src Port: 4234 (4234), Dst Port: http (80),
    450. Seq: 1, Ack: 1, Len: 0
    451.  
    452. No.     Time        Source                Destination           Protocol Info
    453.      30 0.901263    192.168.20.5          194.67.23.151         HTTP     GET
    454. /?mra=&roomleft=&nick=%d8%e5%eb%f3%e4%e8%e2%fb%e9_%ca
    455. %ee%f2&room=1089056&enter=1812&signore=%00&mra_status=&
    456. textcolor=3&nickcolor=3&silent=%00 HTTP/1.1
    457.  
    458. Frame 30 (1065 bytes on wire, 1065 bytes captured)
    459. Ethernet II, Src: Giga-Byt_10:fd:2a (00:0d:61:10:fd:2a), Dst:
    460. EdimaxTe_e5:d8:7e (00:50:fc:e5:d8:7e)
    461. Internet Protocol, Src: 192.168.20.5 (192.168.20.5), Dst: 194.67.23.151
    462. (194.67.23.151)
    463. Transmission Control Protocol, Src Port: 4234 (4234), Dst Port: http (80),
    464. Seq: 1, Ack: 1, Len: 1011
    465. Hypertext Transfer Protocol
    466.     GET /?mra=&roomleft=&nick=%d8%e5%eb%f3%e4%e8%e2%fb
    467. %e9_%ca%ee%f2&room=1089056&enter=1812&signore=%00&
    468. mra_status=&textcolor=3&nickcolor=3&silent=%00 HTTP/1.1\r\n
    469.         Request Method: GET
    470.         Request URI: /?mra=&roomleft=&nick=%d8%e5%eb%f3%e4%e8
    471. %e2%fb%e9_%ca%ee%f2&room=1089056&enter=1812&signore=
    472. %00&mra_status=&textcolor=3&nickcolor=3&silent=%00
    473.         Request Version: HTTP/1.1
    474.     Host: chat.mail.ru\r\n
    475.     User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.6)
    476. Gecko/20060728 Firefox/1.5.0.6\r\n
    477.     Accept: text/xml,application/xml,application/xhtml+xml,text/html;
    478. q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n
    479.     Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n
    480.     Accept-Encoding: gzip,deflate\r\n
    481.     Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n
    482.     Keep-Alive: 300\r\n
    483.     Connection: keep-alive\r\n
    484.     Referer: http://chat.mail.ru/\r\n
    485.     Cookie: Login=*******; Domain=mail.ru; nick=%u0428%u0435%u0
    486. 43B%u0443%u0434%u0438%u0432%u044B%u0439_%u041A%u043E
    487. %u0442; nickcolor=3; textcolor=3; room=1089056; silent=0; signore=0;
    488. MailUser=1; Mpop=1154770654:577f475f035b7a7b19050219091d011
    489.     \r\n
     
  6. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    1. Какие из этих кук ты считаешь новыми?
    2. Куки можно поставить на странице клиентским сценарием.
    3. Спамить чаты не есть хорошо.
     
  7. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    1. Вот эти: "Login=*******; Domain=mail.ru;
    nick=%u0428%u0435%u043B%u0443%u0434%u0438%u0432%u044B%
    u0439_%u041A%u043E%u0442; nickcolor=3; textcolor=3;
    room=1089056; silent=0; signore=0;"

    2. Я привел полный дамп пакетов. Ты видишь там сценарии? Я не вижу, хоть убей. И метатэгов не вижу.

    3. А почему ты решил, что я собираюсь спамить чаты? Я сам не люблю спамеров. Я заядлый чатланец, и просто хочу поместить бота в свою комнату, чтобы он облегчал мне жизнь. Почему вообще все сразу подозревают меня в чем-то нехорошем? То в воростве контента, то в спамерстве... Вот у меня обычное дело, когда заказчик просит написать какую-то утилиту, которая просто представляла бы данные в более удобном виде. Естественно, что владельцы веб-сервисом не дадут мне прямой доступ к своей базе. И что тогда плохого, если я пишу скрипт, который просто позволяет просмотреть те же данные в более удобном виде? А ведь если бы я привел тут подобный код, я бы стопудово был бы обвинен в воровстве контента! Думаю, не стоит быть столь поспешными с выводами.
     
  8. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Тов. Шелудивый Кот, а вы точно очистили все куки?
    И является содержимое Login корректным логином?
     
  9. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Хе-хе :)) И не лень было раскодировать? :) Из скрипта, или какую-то тулзу удобную пользвуешь?

    Да! :) Сейчас попробовал снова! :) Удалил куки доменов mail.ru и chat.mail.ru. Залогинился в чат - они снова появились. Просмотрел лог пакетов - сного никакого намека на установку значений кук домена chat.mail.ru. Кстати, те самые куки, которые я не могу поймать, относятся именно к домену chat.mail.ru. А те, которые поймал - к домену mail.ru.

    Ну если я через браузер логинюсь - значит значение корректное. Дамп пакетов не имеет отношеиня к моему скрипту. Это пакеты, перехваченные в то время, как я логинился через браузер. И тем не менее в дампе нигде нет установки кук для домена chat.mail.ru, а они от куда-то берутся. Вот я и не пойму где они прячутся и как проникают в браузер, и от куда мне их собсно и нужно ловаить.
     
  10. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    в дампе все страницы получены с 302-м статусом. это, так называемый, редирект. после него на другую страницу кидает, там, возможно, куки и ставятся.
     
  11. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Да. Если тебе не трудно, давай пройдем по всем этим запросам, отбросив мусор, который я предусмотрительно оставил в предыдущем сообщении. Мало ли что... ;-).

    Вот первый респонс:

    Код (Text):
    1.  
    2. Hypertext Transfer Protocol
    3.     HTTP/1.1 302 Found\r\n
    4.         Request Version: HTTP/1.1
    5.         Response Code: 302
    6.     Date: Sat, 05 Aug 2006 09:37:33 GMT\r\n
    7.     Server: 3WservRT 2001, VxWorks 5.4\r\n
    8.     Set-Cookie: ticket=; path=/; expires=Thu, 16 Oct 2003 09:37:34 GMT;
    9. domain=.mail.ru\r\n
    10.     Set-Cookie: ticket=; path=/; expires=Thu, 16 Oct 2003 09:37:34 GMT;
    11. domain=.chat.mail.ru\r\n
    12.     P3P: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID PSAo PSDo
    13. OUR BUS UNI NAV STA INT"\r\n
    14.     Set-Cookie: MailUser=1; expires=Fri, 03 Nov 2006 09:37:34 GMT;
    15. path=/; domain=.mail.ru\r\n
    16.     Pragma: no-cache\r\n
    17.     Cache-Control: private\r\n
    18.     Set-Cookie: Mpop=1154770654:577f475f035b7a7b19050219091d011b0005034f6
    19. a5d5e465e0107041b01027b1f455058665a5e44105a545e591f4642:
    20. *******@mail.ru:; path=/; expires=Fri, 03 Nov 2006 09:37:34 GMT;
    21. domain=.mail.ru\r\n
    22.     Set-Cookie: t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    23. AAAAAAAAAAAAABAAABAAAAAAAAAAAAAAEBvAcA; path=/;
    24. expires=Thu, 01 Feb 2007 09:37:34 GMT; domain=.mail.ru\r\n
    25.     Location: http://my.chat.mail.ru/cgi-bin/checkcookie?id=577f475f035b7a7b1905
    26. 0219091d011b0005034f6a5d5e465e0107041b01027b1f455058665a5e4
    27. 4105a545e591f4642&user=*******&domain=mail.ru&page=http%3a%
    28. 2f%2fchat.mail.ru%2f%3fmra%3d%26roomleft%3d%2
    29.     Connection: close\r\n
    30.     Transfer-Encoding: chunked\r\n
    31.     Content-Type: text/html\r\n
    32.     \r\n
    Он очищает две устаревшие куки и ставит куки для домена mail.ru:

    Код (Text):
    1.  
    2.     Set-Cookie: ticket=; path=/; expires=Thu, 16 Oct 2003 09:37:34 GMT;
    3. domain=.mail.ru\r\n
    4.     Set-Cookie: ticket=; path=/; expires=Thu, 16 Oct 2003 09:37:34 GMT;
    5. domain=.chat.mail.ru\r\n
    6.     Set-Cookie: MailUser=1; expires=Fri, 03 Nov 2006 09:37:34 GMT;
    7. path=/; domain=.mail.ru\r\n
    8.     Set-Cookie: Mpop=1154770654:577f475f035b7a7b19050219091d011b0005034f6
    9. a5d5e465e0107041b01027b1f455058665a5e44105a545e591f4642:
    10. *******@mail.ru:; path=/; expires=Fri, 03 Nov 2006 09:37:34 GMT;
    11. domain=.mail.ru\r\n
    12.     Set-Cookie: t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    13. AAAAAAAAAAAAABAAABAAAAAAAAAAAAAAEBvAcA; path=/;
    14. expires=Thu, 01 Feb 2007 09:37:34 GMT; domain=.mail.ru\r\n
    И делает перенаправление на checkcookie:

    Код (Text):
    1.  
    2.     Location: http://my.chat.mail.ru/cgi-bin/checkcookie?id=577f475f035b7a7b1905
    3. 0219091d011b0005034f6a5d5e465e0107041b01027b1f455058665a5e4
    4. 4105a545e591f4642&user=*******&domain=mail.ru&page=http%3a%
    5. 2f%2fchat.mail.ru%2f%3fmra%3d%26roomleft%3d%2
    Браузер открывает новый урл, посылая туда эти куки

    Код (Text):
    1.  
    2.     Cookie: MailUser=1; Mpop=1154770654:577f475f035b7a7b1905021
    3. 9091d011b0005034f6a5d5e465e0107041b01027b1f455058665a5e4410
    4. 5a545e591f4642:*******@mail.ru:; t=obLD1AAAAAAIAAAAAAAAAAA
    5. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAA
    6. AAAAAAAAEBvA
    и получает второй респонс, в котором нет установок кук:

    Код (Text):
    1.  
    2. Hypertext Transfer Protocol
    3.     HTTP/1.1 302 Found\r\n
    4.         Request Version: HTTP/1.1
    5.         Response Code: 302
    6.     Date: Sat, 05 Aug 2006 09:37:34 GMT\r\n
    7.     Server: 3WservRT 2001, VxWorks 5.4\r\n
    8.     Location: http://chat.mail.ru/?mra=&roomleft=&nick=%d8%e5%eb
    9. %f3%e4%e8%e2%fb%e9_%ca%ee%f2&room=1089056&enter=1812
    10. &signore=%00&mra_status=&textcolor=3&nickcolor=3&silent=%00\r\n
    11.     Connection: close\r\n
    12.     Transfer-Encoding: chunked\r\n
    13.     Content-Type: text/html\r\n
    14.     \r\n
    зато в нем есть новое перенапрвяление

    Код (Text):
    1.  
    2.     Location: http://chat.mail.ru/?mra=&roomleft=&nick=%d8%e5%eb
    3. %f3%e4%e8%e2%fb%e9_%ca%ee%f2&room=1089056&enter=1812
    4. &signore=%00&mra_status=&textcolor=3&nickcolor=3&silent=%00\r\n
    И браузер прется по этмоу адресу, отсылая следующие заголовки

    Код (Text):
    1.  
    2. Hypertext Transfer Protocol
    3.     GET /?mra=&roomleft=&nick=%d8%e5%eb%f3%e4%e8%e2%fb
    4. %e9_%ca%ee%f2&room=1089056&enter=1812&signore=%00&
    5. mra_status=&textcolor=3&nickcolor=3&silent=%00 HTTP/1.1\r\n
    6.         Request Method: GET
    7.         Request URI: /?mra=&roomleft=&nick=%d8%e5%eb%f3%e4%e8
    8. %e2%fb%e9_%ca%ee%f2&room=1089056&enter=1812&signore=
    9. %00&mra_status=&textcolor=3&nickcolor=3&silent=%00
    10.         Request Version: HTTP/1.1
    11.     Host: chat.mail.ru\r\n
    12.     User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.6)
    13. Gecko/20060728 Firefox/1.5.0.6\r\n
    14.     Accept: text/xml,application/xml,application/xhtml+xml,text/html;
    15. q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n
    16.     Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n
    17.     Accept-Encoding: gzip,deflate\r\n
    18.     Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n
    19.     Keep-Alive: 300\r\n
    20.     Connection: keep-alive\r\n
    21.     Referer: http://chat.mail.ru/\r\n
    22.     Cookie: Login=*******; Domain=mail.ru; nick=%u0428%u0435%u0
    23. 43B%u0443%u0434%u0438%u0432%u044B%u0439_%u041A%u043E
    24. %u0442; nickcolor=3; textcolor=3; room=1089056; silent=0; signore=0;
    25. MailUser=1; Mpop=1154770654:577f475f035b7a7b19050219091d011
    26.     \r\n
    Видишь, в конце заголовков устанавливаются куки?

    Код (Text):
    1.  
    2.     Cookie: Login=*******; Domain=mail.ru; nick=%u0428%u0435%u0
    3. 43B%u0443%u0434%u0438%u0432%u044B%u0439_%u041A%u043E
    4. %u0442; nickcolor=3; textcolor=3; room=1089056; silent=0; signore=0;
    5. MailUser=1; Mpop=1154770654:577f475f035b7a7b19050219091d011
    6.     \r\n
    Вопрос: от куда он их взял???? Предпоследний запрос посылал другой набор кук, а в респонсе новые куки не устанавливались. И никаких скриптов, метатгов, фреймов и т.д. Как???
     
  12. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. <form method=post action="http://my.chat.mail.ru/cgi-bin/auth" name="form_reg" onSubmit="return valid()">
    Код (Text):
    1. function valid() {
    2.  var f = document.form_reg;
    3.  
    4.  if (f.Login.value == "") {
    5.   window.alert("Не заполнено поле email");
    6.   return false;
    7.  }
    8.  if (f.Password.value == "") {
    9.   window.alert("Не заполнено поле пароль");
    10.   return false;
    11.  }
    12.  SetCookie('Login',f.Login.value,exp);    
    13.  SetCookie('Domain',f.Domain.options[f.Domain.selectedIndex].value,exp);    
    14.  
    15.  if(f.nick.value == "" ) {
    16.   window.alert("Не заполнено поле ник");
    17.   return false;
    18.  }
    19.  f.silent.value = f.silent_ch.checked ? 1 : 0;
    20.  f.signore.value = f.signore_ch.checked ? 1 : 0;
    21.  saveCookie();
    22.  return true;
    23. }
    все устанавливается еще при сабмите формы.
     
  13. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Блин! Вот уж не думал, что функция валидации будет куки устанавливать! Эх!..... Вот что значит шаблонное мышление. И вот что значит правильно подбирать называния для функций. Ну, по крайней мере теперь буду знать хороший способ запутать врага ;-)

    Большое спасибо, simpson! И большое спасибо всем, кто учавствовал в дискусси!