Mit PHP gesetztes Cookie auslesen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
scripter
User
Beiträge: 3
Registriert: Samstag 23. August 2008, 01:26

Hi,

ich möchte mich mit Python´s urllib2 auf einer Seite einloggen. Soweit habe ich das auch schon geschafft, allerdings müsste ich mit Python das von der login.php gesetzte Cookie wieder auslesen können, damit ich dieses auf den weiteren Seiten mit einbetten kann.

Vielen Dank für die Antworten!
scripter
User
Beiträge: 3
Registriert: Samstag 23. August 2008, 01:26

Diese Lib habe ich duchrs googlen auch schon gefunden, allerdings nur in Verbindung mit Code, der ausliest. Es wäre nett, wenn mir jemand einen kurzen Beispielcode geben würde.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

In den HTTP-Headers wird Set-Cookie übertragen, wo das Cookie abgelegt wird.

Besserer Ansatz: gleich Machanize benutzen, dann spart man sich das lästige Cookie-Handling.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
scripter
User
Beiträge: 3
Registriert: Samstag 23. August 2008, 01:26

Was ist Machanize? Die PHP kann ich nicht verändern, da diese fest auf dem Webspace eines Freundes liegt.

Durch urllib2.urlopen kann man doch den HTTP-Header nur senden, nicht empfangen. Und eine andere Funktion dafür habe ich nicht entdeckt.
BlackJack

mechanize tut so als wäre es ein Browser.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

scripter hat geschrieben:Durch urllib2.urlopen kann man doch den HTTP-Header nur senden, nicht empfangen.
Natürlich kann man mit der urllib2 den Header auch lesen, der wird ja bei jedem HTTP-Request mitgeschickt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Habe ein ähnliches Problem. Ich logge mich erfolgreich mit meinem eigenen Mini-Script (mit HTTPCookieProcessor) bei einer Website ein. Ich erhalte nur einen Cookie zurück, und zwar PHPSESSID, sonst nix.

Wenn ich das Ganze im Firefox durchführe und mir alle HTTP Requests mit der Extension HttpFox mit logge, dann ist das schon mal korrekt. Nach dem Login lädt der echte Browser weitere Dinge wie CSS- und JavaScript-Dateien aus dem HTML-Quelltext. Das passiert nur ca. 250 ms später als der Login-Request -> dort sendet Firefox allerdings schon 4 weitere Cookies mit und ich weiß nicht woher die kommen. Im HTML-Quelltext selbst werden diese 4 Cookies jedenfalls nicht gesetzt (geht ja mittels JavaScript und `document.cookie`).

Ich dachte zuerst, dass PHP das verdeckt macht, aber PHP wird wohl nichts weiter machen als der HTTP-Antwort ein paar Cookie-Set-Header hinzuzufügen, richtig? Und da ich in der Antwort nur PHPSESSID zurück bekommen habe, war das die ganze Arbeit von PHP.

Woher kommen nun die 4 unbekannten Cookies, dreen Werte wichtig für den weiteren Verlauf nach dem Login sind? Dort drin stecken nämlich weitere IDs und Hashes. Jemand ne Idee?
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Oh, vergesst es -- es IST JavaScript. Es wird aber erst nachgeladen, erzeugt weiteren JavaScript-Code direkt im HTML über DOM und setzt dort diese Cookies.
Antworten