| Autor |
Beitrag |
DeadlyAppearance
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Do 27.04.06 14:07
Hi.
Und zwar folgendes. Ich versuche mit einem Delphiprogramm auf eine Website zu kommen um mir via get die Quellcode zum Parsen zu holen.
Der Login auf der Seite funktioniert nur, wenn Cookies im Browser erlaubt sind. Im Cookie sind Benutzername sowie Passwort gespeichert.
Logge ich mich über den Browser ein, legt er ein Cookie an und ich kann selbst nach dem xten mal schließen des Browsers ohne Login in den geschützten Bereich.
Nun habe ich versucht mit
Delphi-Quelltext 1:
| Memo1.Text:=idHTTP1.Get('http://xxx/intern.php'); |
Mir die Daten zu holen.
AllowCookies ist auf true. Dachte so benutzt er automatisch alle Cookies vom IE.
Leide komme ich immer nur auf die Seite, wo ich mich einloggen soll.
Nun ist meine Frage, wie kann ich den Cookie, welcher sich auf meiner Platte befindet benutzen um in den internen Bereich zu gelangen? Aus dem CookieManager bin ich nicht ganz schlau geworden :/.
Schon mal Danke für eure Hilfe.
Moderiert von matze: Code- durch Delphi-Tags ersetzt
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Do 27.04.06 17:47
du musst einfach den CookieManager auf dein Formular legen, und ihn dann in der entsprechenden Eigenschaft der HTTP Kompo eintragen. That's it !
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 28.04.06 20:33
Hmm, hab den Cookiemanager aufs Forumlar gelegt und verbunden. Doch hat sich nix geändert, komme weiterhin nur auf die Loginseite.
Öffne ich die URL im IE so gelange ich sofrt in internen Bereich, sprich das Cookie existiert korrekt.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
Balmung der blaue Gott
      
Beiträge: 52
WinXP
|
Verfasst: Fr 28.04.06 21:30
DeadlyAppearance hat folgendes geschrieben: | | Nun ist meine Frage, wie kann ich den Cookie, welcher sich auf meiner Platte befindet benutzen um in den internen Bereich zu gelangen? Aus dem CookieManager bin ich nicht ganz schlau geworden :/. |
Falls du es nicht mit dem Manager schaffst, aber die Kompo nicht zu stark gekapselt ist, kannst du auch 'Cookie: name=Wert' mitsenden. (Wenn es keine Methode gibt und nicht auf ein Socketobjekt zugegriffen werden kann, gibt es immer noch die Möglichkeit direkt mit TClientSocket zu arbeiten.)
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 28.04.06 22:31
Verstehe dich leider nicht richtig Balmung der blaue Gott.
In google findet man leider sehr wenig bezüglich Cookies und dieser Komponente.
/edit
Habe nun eine 2. Seite versucht wo man sich auch einloggen kann.
Das steht im Cookie drin:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| cookie_data a%3A2%3A%7Bs%3A6%3A%22user_n%22%3Bs%3A16%3A%22Benutzername%22%3Bs%3A6%3A%22user_p%22%3Bs%3A32%3A%Passwort%22%3B%7D blasc.planet-multiplayer.de/ 1536 2180579456 29854164 78498256 29780739 * |
In Delphi versuche ich nun folgendes:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.Button1Click(Sender: TObject); var fn: TFileName; fs : TFileStream; begin fn := 'C:\download.htm'; fs := TFileStream.Create(fn, fmCreate); try try IdHTTP1.HandleRedirects := True; IdHTTP1.RedirectMaximum := 15; IdHTTP1.CookieManager.AddCookie('a%3A2%3A%7Bs%3A6%3A%22user_n%22%3Bs%3A16%3A%22Benutzername%22%3Bs%3A6%3A%22user_p%22%3Bs%3A32%3A%Passwort%22%3B%7Dblasc.planet-multiplayer.de/15362180579456298541647849825629780739*','blasc.planet-multiplayer.de/'); IdHTTP1.Get('http://blasc.planet-multiplayer.de/', fs); except end; finally FreeAndNil(fs); end; end; |
Jedoch leider ohne Erfolg. Was mache ich falsch?
Moderiert von raziel: Code- durch Delphi-Tags ersetzt.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Sa 29.04.06 09:08
Laut Indy 9 Doku sollte es das tun:
Delphi-Quelltext 1:
| IdHTTP1.CookieManager.AddCookie('cookie_data=a%3A2%3A%7Bs%3A6%3A%22user_n%22%3Bs%3A16%3A%22Benutzername%22%3Bs%3A6%3A%22user_p%22%3Bs%3A32%3A%Passwort%22%3B%7Dblasc.planet-multiplayer.de/15362180579456298541647849825629780739*','blasc.planet-multiplayer.de/'); |
(Übrigens 1. Treffer bei INDY ADDCOOKIE  )
Gruß,
raziel
_________________ JSXGraph
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Sa 29.04.06 09:24
es ist ja logisch, dass du mit indy auf die Login Seite kommst, da du dich ja mit den Indys noch nicht angemeldet hast.
Der Cookie Manager ließt nicht die Cookies vom IE oder anderen Browsern aus !
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Sa 29.04.06 14:45
@raziel
leider funktioniert das nicht. Hab nun verschiedene Strings als Cookie versucht, er klappt nicht.
Leider isses auch etwas schwer herauszubekommen warum es net geht da man ja net weis was and der anderen Seite beim Webserver fehlt etc.
@matze
Das er net automatisch die IE-Cookies nutzt wusste ich nicht. Nur weis ich nun mein Beispielcookie dem Manager übergebe is halt noch die Frage die gelöst werden muss...
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 29.04.06 14:57
Naja, Opera und Firefox benutzen auch nicht die IE Cookies, genausowenig wie der IE deren Cookies findet... Ich teste mal was...
edit ok. Das klappte nicht:
Delphi-Quelltext 1: 2:
| http.CookieManager.AddCookie('cookie_data=a%3A2%3A%7Bs%3A6%3A%22user_n%22%3Bs%3A16%3A%22Benutzername%22%3Bs%3A6%3A%22user_p%22%3Bs%3A32%3A%Passwort%22%3B%7Dhttp://www.delphi-forum.de/15362180579456298541647849825629780739*','http://www.delphi-forum.de/'); Memo1.Text:=http.Get(edit1.Text); |
Zurückgeliefert wurde mir die Seite: "Du kannst nur deine eigenen Beiträge bearbeiten"
Das müsste bedeuten, dass das Cookie garnicht beachtet wurde... Naja, ich hab wahrscheinlich irgentwas falsch gemacht ^^
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Sa 29.04.06 15:14
1:1 geht das natürlich nicht, da ich hier fürs Forum meinen Benutzername und das Passwort ersetzt habe mit den beiden Wörtern.
Habe eben den Inhalt meines Cookies hier 1:1 kopiert, alles in eine Zeile, eben so wie hier nur eben mit dem richtigen Benutzernamen.
Aber leider sehe ich immer den registirebutton, öffne ich die Seite dierekt ausm Browser is dieser nicht vorhanden da ich eben eingeloggt bin.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 29.04.06 15:34
DeadlyAppearance hat folgendes geschrieben: | 1:1 geht das natürlich nicht, da ich hier fürs Forum meinen Benutzername und das Passwort ersetzt habe mit den beiden Wörtern.
Habe eben den Inhalt meines Cookies hier 1:1 kopiert, alles in eine Zeile, eben so wie hier nur eben mit dem richtigen Benutzernamen. |
-.- Ich selbstverständlich auch - oder soll ich meinen Benutzernamen & PW fürs Delphiforum veröffentlichen? -.~
...die Sterne stehen nicht mehr für die Beitragszahl... nich vergessen... -.-
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Sa 29.04.06 15:53
KK, dann machen wir beide irgendwas falsch bei der Übergabe des Cookies. Schade das bis jetzt noch kein andere ne Idee oder Lösung hat.
Hmm, wie kommst du auf die Sterne und Beitragszahlen? Is mir eigentlich egal was da wo steht ^^.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Sa 29.04.06 17:17
Hab mal ein paar Tests durchgeführt:
Delphi-Quelltext 1: 2:
| idHTTP1.CookieManager.AddCookie('test=bla', 'localhost'); Memo1.Lines.Text := idHTTP1.Get('http://localhost/cookie.php'); |
cookie.php 1: 2: 3:
| <?php echo $_COOKIE['test']; ?> |
Und nach dem Aufruf hatte ich "bla" im Memo stehen  Wird also übergeben. Anschließend ein Test mit einem lokal installierten phpBB, hat ebenfalls funktioniert (weglassen des Cookies sorgte für ausgeloggt sein).
Also liegt der Fehler bei euch in der Domainangabe (ohne http:// und abschließendem /), in einer fehlerhaften Eintragung der Cookie-Daten oder es werden noch mehr Cookies benötigt.
Gruß,
raziel
_________________ JSXGraph
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Sa 29.04.06 18:47
Ich könnte schwören es ging im Beispiel hier das Forum. Dann den Slahs am Ende weggemacht, wieder hin und nun bekomme ich es einfach nimmer hin. Ohh man.
Aber wie du ja gezeigt hast, gehen tut es auf jedenfall. Nun muss sich nurnoch der Knackpunkt finden warum es z.B. hier ans Forum nicht geht.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Sa 29.04.06 19:10
AllowCookies ist aber schon noch auf true gesetzt, oder? 
_________________ JSXGraph
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Sa 29.04.06 19:27
raziel hat folgendes geschrieben: | AllowCookies ist aber schon noch auf true gesetzt, oder?  |
Ja habe ich. Eben nochmal komplett alle Komponenten ausgetauscht etc. Aber es geht nicht.
Hast du es schonmal versucht hier mitm Forum? Denke is das beste Beispiel wo jeder drauf Zugriff hat. Vielleicht erklärt sich dann, warums auf anderen Seite auch nicht geht.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Sa 29.04.06 19:46
Funktioniert bei mir auch hier im Forum. Vorgehensweise:
- IdHTTP aufs Formular
- IdCookieManager aufs Formular
- CookieManager mit IdHTTP verbinden über Objektinspektor
- Memo aufs Forumlar
- Button aufs Formular, OnClick:
Delphi-Quelltext 1: 2:
| IdHTTP1.CookieManager.AddCookie('df_data=*snip*', 'www.delphi-forum.de'); Memo1.Lines.Text := IdHTTP1.Get('http://www.delphi-forum.de'); |
Funktioniert wunderbar 
_________________ JSXGraph
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: So 30.04.06 02:00
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); var fn: TFileName; fs : TFileStream; begin fn := 'C:\download.htm'; fs := TFileStream.Create(fn, fmCreate); try IdHTTP1.CookieManager.AddCookie('df_data=*snip*', 'www.delphi-forum.de'); IdHTTP1.Get('http://www.delphi-forum.de',fs); finally FreeAndNil(fs); end; end; |
Habs nun Step bei Step wie du gemacht und einmal in mein Beispiel eingefügt damit ers in ne Textdatei speichert. Jedesmal gelange ich nur auf die Loginseite. Ich verstehe es einfach nicht.
Was mache ich denn falsch?
Moderiert von raziel: Code- durch Delphi-Tags ersetzt, Cookie-Daten entfernt.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: So 30.04.06 09:29
Ich vermute mal, das *snip* will mit irgentwas ersetzt werden (is na nirgens username und pw aufgetaucht ;> ). mit was denn genau? also ich meine wenn ichs mit "Der Benutzername ist JayEff, sein Passwort ist xxxXXXxxx, bitte log dich jetzt ein!" ersetze, klappts nich :'(
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: So 30.04.06 10:44
JayEff hat folgendes geschrieben: | | Ich vermute mal, das *snip* will mit irgentwas ersetzt werden (is na nirgens username und pw aufgetaucht ;> ). |
Exakt, mit Hilfe des Cookies könnte man sich ja hier einloggen und jede Menge Unsinn treiben  Deshalb hab ichs vorsichtshalber mal entfernt. Wo nehmt ihr dann eure Cookies her? Ich hol meines ausm Firefox, Extras -> Einstellungen -> Datenscutz -> Cookies -> Cookies Anzeigen und dann bei Inhalt markieren, kopieren und in Delphi einfügen.
_________________ JSXGraph
|
|