Skocz do zawartości


 
Zdjęcie

Logowanie na allegro za pomocą cURL


  • Proszę się zalogować aby odpowiedzieć
8 odpowiedzi na ten temat

#1 amii

amii
  • Banned
  • 136 postów
  • Dołączył: 29-maj 09

Napisany 18 kwiecień 2011 - 09:38

Wie ktoś jaki tam myk zastosowali ? Wszystkie dane POST są na 100% wysyłane w poprawnej formie, ciastka i przekierowania włączone ale wywala na główną stronę bez loginu.

Skorzystanie z ich API odpada.

Edytowany przez amii, 18 kwiecień 2011 - 09:40.

Najtańsze przedłużenia domen: masternet.plDodany obrazek
50 zł w zakładzie bez ryzka - betclic.pl
Darmowe gry flash

#2

Mion

    PHP != BHP

  • Forumowicze
  • 13166 postów
  • Dołączył: 09-marzec 05

Napisany 18 kwiecień 2011 - 09:57

Allegro używa protokołu SSL wiec musisz zaimplementować obsługę logowania z SSL

#3 amii

amii
  • Banned
  • 136 postów
  • Dołączył: 29-maj 09

Napisany 18 kwiecień 2011 - 10:04

Może wrzucę kod:

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

function loguj_allegro() {
$cookie_file = 'cookie.txt';


$post = array('session'=>'',
'global_login_hash'=>'',
'session_login_hash'=>'',
'url'=>'',
'cod'=>'');

$curl = curl_init();
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl, CURLOPT_REFERER, "http://allegro.pl");
curl_setopt($curl, CURLOPT_URL, "http://allegro.pl/ma...page_login.php");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729)');
curl_setopt($curl, CURLOPT_POST, 0);
$strona = curl_exec($curl);



/************************SEKCJA WYDOBYWANIA DANYCH ZE STRONY****************************/
//reg_session
preg_match('#<input type="hidden"\s+name="session(\S\s+)value="(\S+)"#Usi', $strona, $out);
if($out)
{
$post['session'] = urlencode($out[2]); //dopasowanie $post[name] = value
//echo 'session: ' .$post['session']. '<br>';
}

//reg_login_hash
preg_match('#<input type="hidden" name="global_login_hash" value="(\S*)"#Usi', $strona, $out);
if($out)
{
$post['global_login_hash'] = urlencode($out[1]); //dopasowanie $post[name] = value
//echo 'global_login_hash: ' .$post['global_login_hash']. '<br>';
}

//reg_session_hash
preg_match('#<input type="hidden"\s+name="session_login_hash" value="(\S*)"#Usi', $strona, $out);
if($out)
{
$post['session_login_hash'] = urlencode($out[1]); //dopasowanie $post[name] = value
//echo 'session_login_hash: ' .$post['session_login_hash']. '<br>';
}

//reg_url
preg_match('#<input type="hidden"\s+name="url" value="(\S*)"#Usi', $strona, $out);
if($out)
{
$post['url'] = urlencode($out[1]); //dopasowanie $post[name] = value
//echo 'url: ' .$post['url']. '<br>';
}

//reg_cod
preg_match('#<input type="hidden"\s+name="cod" value="(\S*)"#Usi', $strona, $out);
if($out)
{
$post['cod'] = urlencode($out[1]); //dopasowanie $post[name] = value
//echo 'cod: ' .$post['cod']. '<br>';
}

$post['request_server'] = 'ssl.allegro.pl';
$post['user_login'] = 'my_secret_login';
$post['user_password'] = 'my_secret_password';

print_r($post); //dane poprawne
$url = "https://ssl.allegro.pl/enter_login.php?session=".$post['session']."&global_login_hash=".$post['global_login_hash']."&session_login_hash=".$post['session_login_hash']."&url=".$post['url']."&cod=".$post['cod'];
/************************SEKCJA WYDOBYWANIA DANYCH ZE STRONY****************************/

curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl, CURLOPT_REFERER, $url);
curl_setopt($curl, CURLOPT_URL, "https://ssl.allegro.pl/login.php");
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$strona = curl_exec($curl);

curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl, CURLOPT_REFERER, "https://ssl.allegro.pl/login.php");
curl_setopt($curl, CURLOPT_URL, "https://ssl.allegro.pl/direct_login.php?session=".$post['session']."&global_login_hash=".$post['global_login_hash']."&session_login_hash=".$post['session_login_hash']."&url=".$post['url']."&cod=".$post['cod']);
$strona = curl_exec($curl);


echo $strona; //strona wywala z prośbą o padanie loginu i hasła
$info = curl_getinfo($curl); //transfer OK
var_dump($info); //dane OK

curl_close($curl);

}


loguj_allegro();


Najtańsze przedłużenia domen: masternet.plDodany obrazek
50 zł w zakładzie bez ryzka - betclic.pl
Darmowe gry flash

#4

Mion

    PHP != BHP

  • Forumowicze
  • 13166 postów
  • Dołączył: 09-marzec 05

Napisany 18 kwiecień 2011 - 10:49

Sprawdź dokładnie jakie dane POST wysyłane są z przeglądarki, bo może są ukryte pola w formularzu, zakodowane dane których brak uniemożliwia prawidłowe logowanie.

Dlaczego tu wywołujesz http :
curl_setopt($curl, CURLOPT_URL, "http://allegro.pl/ma...page_login.php");
a nie HTTPS ???

Poza tym przy prawidłowym zalogowaniu jest przekierowanie na http://allegro.pl/ jednak wtedy w kolejnych ządaniach HTTP możesz wywołać strony typowe dla zalogowanego np http://allegro.pl/myaccount/bid.php

ITD

#5 amii

amii
  • Banned
  • 136 postów
  • Dołączył: 29-maj 09

Napisany 18 kwiecień 2011 - 11:46

Ta strona -> http://allegro.pl/mainpage_login.php jest normalnie wywoływana a z https się dopiero później łączy
POST jest na pewno wysyłany ok sprawdzam w zmiennych + livehttpheaders Wydaje mi się, że tam jest coś z ciastkami pokręcone ale nie wiem co. Dziwna sprawa bo raz mi się udało tam zalogować zmieniając ciastko ale nie wiem jak to powtórzyć.
Najtańsze przedłużenia domen: masternet.plDodany obrazek
50 zł w zakładzie bez ryzka - betclic.pl
Darmowe gry flash

#6

Mion

    PHP != BHP

  • Forumowicze
  • 13166 postów
  • Dołączył: 09-marzec 05

Napisany 18 kwiecień 2011 - 12:07

Jeszcze masz całą masę zmiennych w ukrytych polach formularza które należy wysłać:

<form action="/login.php" name="form_login" method="post"><input type="hidden" name="session" value="Mjg0NQZVCwRRCFABAwcOXAFdDAAJAVwGUQsDDQFSDVFWAFVWUQEBVlYMBwYIVw8DAF4AUABQMGM5
ZQ==" /><input type="hidden" name="global_login_hash" value="c6adbd6205daf186ec8ee162481c9b6df305c0c0" /><input type="hidden" name="session_login_hash" value="92d890d5404df7b02b07f6b34c05beee00be5223" /><input type="hidden" name="url" value="OWM0NFlMFhUDTBtDRk9MBFUPUVNDV0wVVUxRRkNXEEpYAFdRQks9AEsRW0YfSAoVBg1ba1VREFgI
MThiZQ==" /><input type="hidden" name="cod" value="OGZkZlVlNmJk" /><input type="hidden" name="request_server" value="ssl.allegro.pl" />

Edytowany przez Mion, 18 kwiecień 2011 - 12:14.


#7 amii

amii
  • Banned
  • 136 postów
  • Dołączył: 29-maj 09

Napisany 18 kwiecień 2011 - 13:20

Mion ale to o czym mówisz jest wysyłane do https://ssl.allegro.pl/login.php
Wysyłam wszystkie dane POST tak jak wysyła livehttpheaders, także tutaj raczej nie ma mowy o pomyłce. Po prostu na allegro jest jakiś myk albo zabezpieczenie, wujka google oczywiście też pytałem. Jeśli ktoś zrobił logowanie do allegro oparte o cURL to proszę o pomoc na pewno odwdzięczę się czymś więcej niż wirtualnym piwem :)
Najtańsze przedłużenia domen: masternet.plDodany obrazek
50 zł w zakładzie bez ryzka - betclic.pl
Darmowe gry flash

#8

Mion

    PHP != BHP

  • Forumowicze
  • 13166 postów
  • Dołączył: 09-marzec 05

Napisany 18 kwiecień 2011 - 14:12

Jeśli ktoś zrobił logowanie do allegro oparte o cURL to proszę o pomoc na pewno odwdzięczę się czymś więcej niż wirtualnym piwem

Wiec daj konkretne zlecenie w dziale ogłoszeń.

#9

tosik
  • Forumowicze
  • 363 postów
  • Dołączył: 24-luty 09

Napisany 18 kwiecień 2011 - 16:29

amii jeżeli nadal szukasz i odwdzięczasz się czymś więcej niż piwem to zapraszam na PW
Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.




0 użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników

Polecamy