Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Куки с чужого ресурса

304
18 апреля 2008 года
Fenyx
707 / / 26.01.2005
Дано: ресурс - mail.google.com/a/site.com
мне нужно редиректить юзверя на его ящик, для этого использую cUrl для логина получаю токен и редиректю, но там есть подтверждение регистрации. Т.е если новый ящик заведен то токен не отдаеться - нет редиректа. Есть куки получаемые от гугла в этом случае - пример хедера

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Set-Cookie: HID=DQAAAHcAAADm3-oFL0YCCrbf_zxBQH_9ubrT0moeC9bYWERd600v_P28tBNGRIz74t8Ou61_RwhmL4JJah0qAc1ReOtbcJ5GC8WBbRWxuyjO0szMMMa0Xk1OZd6uXB81HOjDMaQeCPib5gXWEQRSHF6W63dpgScJzS0Oxn1BN6avpH6WWIsKNA;Domain=www.google.com;Path=/a/turmir.com/;Secure
Set-Cookie: HID=EXPIRED;Domain=.google.com;Path=/a/turmir.com/;Expires=Mon, 01-Jan-1990 00:00:00 GMT
Set-Cookie: HUSR=mail:test@turmir.com;Path=/a/turmir.com/;Secure
Set-Cookie: ASIDAS=aHBHU3pXSUJBQUE9LnR0cktDVzQ5Y3l1blJoak4rNUZVVlE9PS5XWEpCSndLdzZjTFlmY3Y4YXlHMVpRPT0=;Domain=www.google.com;Path=/a/
Date: Fri, 18 Apr 2008 08:29:17 GMT
Expires: Fri, 18 Apr 2008 08:29:17 GMT
Cache-Control: private, max-age=0
Content-Length: 12069
Server: GFE/1.3

Вопрос, как мне зная эти куки отдать их браузеру, и редериктнуть на определенный урл, но чтоб эти куки отработались
Или может кто уже работал с Gmail и PHP - зенд классы для работы с гуглям не подходят так как не могут работать с Гмылом или не нашел
386
19 апреля 2008 года
newcss
297 / / 05.04.2005
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=9050
вот тут почитай...
Код:
[COLOR=#000000][FONT=Courier New][COLOR=#0000bb]<?php
  $hostname [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"localhost"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
  [/COLOR][COLOR=#0000bb]$path [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"/test/index.php"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];

  [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Устанавливаем соединение, имя которого
  // передано в параметре $hostname
  [/COLOR][COLOR=#0000bb]$fp [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fsockopen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$hostname[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]80[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$errno[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$errstr[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]30[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);  
  [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Проверяем успешность установки соединения
  [/COLOR][COLOR=#007700]if (![/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700]) echo [/COLOR][COLOR=#dd0000]"$errstr ($errno)<br />\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];  
  else
  {  
    [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Формируем HTTP-заголовки для передачи
    // его серверу
    [/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"GET $path HTTP/1.1\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];  
    [/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Host: $hostname\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];  
    [/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Connection: Close\r\n\r\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];  
    [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Отправляем HTTP-запрос серверу
    [/COLOR][COLOR=#0000bb]fwrite[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$headers[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);  
    [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Получаем ответ
    [/COLOR][COLOR=#007700]while (![/COLOR][COLOR=#0000bb]feof[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]))
    {  
      [/COLOR][COLOR=#0000bb]$line [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fgets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]1024[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);  
      [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Ищем строку вида  
      // Set-Cookie: PHPSESSID=6197e647566bdaa24da3ab42ae7604b2;
      // Именно она устанавливает cookie
      [/COLOR][COLOR=#0000bb]preg_match[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"|Set-Cookie: PHPSESSID=([\d\w]+);|i"[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]$line[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]$out[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);
      if(!empty([/COLOR][COLOR=#0000bb]$out[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]1[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]]))
      {
        [/COLOR][COLOR=#0000bb]$SID [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]$out[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]1[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]];
        break;
      }
    }  
    [/COLOR][COLOR=#0000bb]fclose[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);  
  }  

  [/COLOR][COLOR=#0000bb]$hostname [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"localhost"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
  [/COLOR][COLOR=#0000bb]$path [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"/test/handler.php"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
  [/COLOR][COLOR=#0000bb]$line [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]""[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];

  [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Передаём методом POST имя пользователя (admin),
  // его пароль (admin), скрытое поле session_id ($SID)
  // В заголовках, передаём cookie PHPSESSID
  // Устанавливаем соединение, имя которого
  // передано в параметре $hostname
  [/COLOR][COLOR=#0000bb]$fp [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fsockopen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$hostname[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]80[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$errno[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$errstr[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]30[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);  
  [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Проверяем успешность установки соединения
  [/COLOR][COLOR=#007700]if (![/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700]) echo [/COLOR][COLOR=#dd0000]"$errstr ($errno)<br />\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];  
  else
  {  
    [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Данные POST-запроса
    [/COLOR][COLOR=#0000bb]$data [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"name=admin&pass=admin&session_id=$SID&\r\n\r\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
    [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Формируем HTTP-заголовки для передачи
    // его серверу
    [/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"POST $path HTTP/1.1\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];  
    [/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Host: $hostname\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];  
    [/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Content-type: application/x-www-form-urlencoded\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
    [/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Content-Length: "[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]strlen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$data[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#dd0000]"\r\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
    [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Подделываем cookie
    [/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Cookie: PHPSESSID=$SID;\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
    [/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Connection: Close\r\n\r\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];  
    [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Отправляем HTTP-запрос серверу
    [/COLOR][COLOR=#0000bb]fwrite[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$headers[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$data[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);  
    [/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Получаем ответ
    [/COLOR][COLOR=#007700]while (![/COLOR][COLOR=#0000bb]feof[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]))
    {  
      [/COLOR][COLOR=#0000bb]$line [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#0000bb]fgets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]1024[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);  
    }  
    [/COLOR][COLOR=#0000bb]fclose[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);  
  }  
  echo [/COLOR][COLOR=#0000bb]$line[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]?>[/COLOR] [/FONT][/COLOR]
304
20 апреля 2008 года
Fenyx
707 / / 26.01.2005
методом тестов получил результат что куки НЕЛЬЗЯ отправить с другого хоста с подменой, браузер их не сохраняет, т.е. если я отправляю куку с хоста site.com
setcookie("test", "value", time(), "/", "site.com"); // Установиться
setcookie("test", "value", time(), "/", "google.com");// не установиться
Как я понимаю это механизм безопастности и его обойти не представляеться возможным
Кста если отправлять не через setcookie а заголовками - эффект тот же для куки с указанием хоста
ЗЫ все равно сенкс за труды :)
386
22 апреля 2008 года
newcss
297 / / 05.04.2005
Бред какой-то... Ставь Фаер Фокс, к нему лепи плагин - Ливе Хедер =).
Авторизуйся на своем серваке зырь хедеры, и ответы =)
А потом тоже самое пошли со своего сервака.
Я таким образом спокойно логинюсь к сайту через редиректы... =)
304
22 апреля 2008 года
Fenyx
707 / / 26.01.2005
Цитата: newcss
Бред какой-то... Ставь Фаер Фокс, к нему лепи плагин - Ливе Хедер =).
Авторизуйся на своем серваке зырь хедеры, и ответы =)
А потом тоже самое пошли со своего сервака.
Я таким образом спокойно логинюсь к сайту через редиректы... =)


Аха и для проекта который пишу нада фак написать :) типа юзвери не ипите мне моцк ставте файерфок кучу плагинов потом делайте исче это и в конечном счете вообще что вы тут забыли? :)))

386
25 апреля 2008 года
newcss
297 / / 05.04.2005
Блин... не прально понял меня ты... Ты посмотри какие хедеры шлются... А потом просто программно их получай ну или формируй...
304
25 апреля 2008 года
Fenyx
707 / / 26.01.2005
Цитата: newcss
Блин... не прально понял меня ты... Ты посмотри какие хедеры шлются... А потом просто программно их получай ну или формируй...


Уже разобрался :)
Вощщем дело обстоит так - все эти expired, domen и тд. это фича только для браузеров, серв как принимает name=value; так и будет принимать, так что curl рулит

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог