php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-08-2007, 11:01
Besth
 Registrierter Benutzer
Links : Onlinestatus : Besth ist offline
Registriert seit: Mar 2006
Beiträge: 249
Besth ist zur Zeit noch ein unbeschriebenes Blatt
Standard file_get_contents mit login?

Hallo,
ich hätte da mal eine Frage bezüglich file_get_contents.
Mit dieser Funktion ist es ja möglich Daten von anderen Webseiten zu fischen.
Was ist nun aber wenn die andere Seite einen Login erfordert?
Kann man das irgendwie mit übergeben?

Also die Seiten sind so aufgebaut:
Erst muss man sich über example.com/login.php einloggen und dann kann man auf example.com/news.php die Daten abfragen, aber wie logg ich mich über das Script ein?
Ich hab bisher nur das:


PHP-Code:
<?php
$url 
file_get_contents ("http://www.example.com/news.php");

//Ermitteln der Positionen
$erster_punkt strpos($url,"--News--");
$zweiter_punkt strpos($url,"--News end--");

//Extrahieren der Liste mit den Links
$laenge $zweiter_punkt $erster_punkt;
$liste Substr($url$erster_punkt$laenge);

$daten substr($liste,34,50);
?>
__________________
Mess with the Besth, die like the rest!
Mit Zitat antworten
  #2 (permalink)  
Alt 19-08-2007, 11:25
splasch
 Registrierter Benutzer
Links : Onlinestatus : splasch ist offline
Registriert seit: Feb 2007
Beiträge: 74
splasch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also ersten ist es nur möglich den Hmtl code auszulesen also keine cms Seiten.
2.Wenn man sich davor einlogen muß gibst 2 möglichkeiten .)entweder man log sich zuerst ein und lässt das script dann laufen oder man macht sich mehr arbeitet und liest zuerst die Login seite aus und sendet dann die entsprechenden Post an die Seite damit ist man dann auch eingelogt.

Mfg Splasch
Mit Zitat antworten
  #3 (permalink)  
Alt 19-08-2007, 11:33
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
by Splash:
... man log sich zuerst ein und lässt das script dann laufen ...
Woher hat das Script dann die Logindaten?
Mit Zitat antworten
  #4 (permalink)  
Alt 19-08-2007, 11:54
splasch
 Registrierter Benutzer
Links : Onlinestatus : splasch ist offline
Registriert seit: Feb 2007
Beiträge: 74
splasch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das man dafür bei der Seite Regestriert sein muß ist doch wohl klar.Alles andere were ein illegaler zugriff.
Die Daten dafür braucht man ja dem script dann nur sagen entweder man macht dafür ein Formular oder trag die im Quellcode ein.

Mfg Splasch
Mit Zitat antworten
  #5 (permalink)  
Alt 19-08-2007, 12:21
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Na dann zeig mal wie so ein Script aussehen könnte. Das ist es nämlich, wonach hier gefragt wurde.
Mit Zitat antworten
  #6 (permalink)  
Alt 19-08-2007, 12:26
Besth
 Registrierter Benutzer
Links : Onlinestatus : Besth ist offline
Registriert seit: Mar 2006
Beiträge: 249
Besth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

genau ^^
weil so richtig weiß ich nicht wie ich ein einloggscript machn soll.
die logindaten hab ich, ja, ich bin auf der seite registriert!
__________________
Mess with the Besth, die like the rest!
Mit Zitat antworten
  #7 (permalink)  
Alt 19-08-2007, 12:35
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wie funktioniert das einloggen? formular oder http auth? im ersteren fall einfach mittels posttohost (google danach) die zugangsdaten eingeben und die antwort auswerten. sollten cookies nötig sein, evtl. mal curl anschauen.

aber mal ehrlich - wofür braucht man sowas?
Mit Zitat antworten
  #8 (permalink)  
Alt 19-08-2007, 12:54
splasch
 Registrierter Benutzer
Links : Onlinestatus : splasch ist offline
Registriert seit: Feb 2007
Beiträge: 74
splasch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das script für ihn komplett werd ich nicht schreiben da es doch ein wenig Zeitaufwendig ist. Aber ich will dir mal den Anreiz geben wie das ganze Aufegbaut werden könnte.

Zunächst Login seite einlesen mit file_get_contents aus dem erhälst du nun ein Array aus diesen ermittelst du nun die positon wo action= steht.Beginnen mit " bis ende " ermitellst du mal den wert also den Link an welche Datei das Forumlar gesendet wird.Wobei du aber überprüfen muß ob es sich dabei um einen Kompletten link handelt oder nur um ein Subverzeichnis (Vergleichen mit der Adresse von auslesen des Login script)

Wenn dir das zu umständlich ist kanste auch selbst fix den Link wert eintragen aber dann ist das script eben nur auf diese bestimmte Seite beschränkt.

So wenn du nun mal den Formular link rausgeflitert hast. Mußte weiter den Quell code durchsuchen einmal nach Password und das danach stehen element name da wieder den wert nach dem ist rausflitern nach "suchen oder sollte der quellcode schlampig geschrieben sein in dem fall nach Leerzeichen aussortieren (chr(32)). Das selbe machst nun jetzt noch mit dem Login feld.

Wenn du alles richtig gemacht hast sollten nun folgende Daten vorliegen.
Der Link wert an das Formular sendet,Denn feldnamen zum einlogen und den Feldnamen zum Password.
Nun kanste enweder über javascript die post anweisung automatisch versenden oder du machst dir einen formular button.(Die werte kanst du unter value eintragen)
Nun solltes du dann auf der Seite eingelogt sein wenn die Daten stimmen und dir Formular felder richtig ausgelesen wurden.

Mfg Splasch

Geändert von splasch (19-08-2007 um 13:00 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 19-08-2007, 13:39
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Curl und snoopy könnten dabei hilfreich sein..
Weil, die evtl. notwendige Cookiesetzerei mit fsockopen und file_get_contents doch schon recht umständlich ist...
__________________
Wir werden alle sterben
Mit Zitat antworten
  #10 (permalink)  
Alt 19-08-2007, 13:53
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

@splash: Schön ... aber es geht nicht um das maschinelle Ausfüllen eines Loginformulars, sondern um das Lesen einer zugangsgeschützten Seite.
Mit Zitat antworten
  #11 (permalink)  
Alt 19-08-2007, 14:18
splasch
 Registrierter Benutzer
Links : Onlinestatus : splasch ist offline
Registriert seit: Feb 2007
Beiträge: 74
splasch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn er ganz einfach machen will dann kann er sich mal ganz normal einlogen und anschließen sich die Session Id notieren und wichtig im selben Broswers nur andere Tab dann dann den Link mit der Session Id als Get senden zum auslesen über das Script dann sollte er auf die Geschütze seiten kommen.

PHP-Code:
$url file_get_contents ("http://www.example.com/news.php?PHPSESSID=abc"); 
Bzw. im Cookie nach schauen wie die Session Id lautet.

Mfg Splasch
Mit Zitat antworten
  #12 (permalink)  
Alt 19-08-2007, 14:41
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Super Idee. Vielleicht wäre er sogar gewillt, sich jedes Mal erst auf der Zielseite anzumelden und die SID aus dem Cookie zu fischen. Dumm nur, dass sich news.php keinen Dreck für GET-Parameter interessiert ...



Lass mal gut sein. Du hast das Problem offensichtlich überhaupt nicht verstanden. Google mal nach den gefallenen Stichwörtern fsockopen, curl, snoopy, posttohost.
Mit Zitat antworten
  #13 (permalink)  
Alt 19-08-2007, 14:48
splasch
 Registrierter Benutzer
Links : Onlinestatus : splasch ist offline
Registriert seit: Feb 2007
Beiträge: 74
splasch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Dumm nur, dass sich news.php keinen Dreck für GET-Parameter interessiert
Wenn du wüßtes wie Session arbeiten dann wüßtes du auch das es egal ist ob nun eine Get abfrage in der Php datei gestartet wird oder nicht solang ein session_start() drin ist.
In dem Fall übernihmmt der Apache server diese aufgabe und gewährt zutritt zur Seite.

Sollte dich mal zum Thema Session Sicherheit befassen.Man kann sogar eine Session nummer einen anderen User vorgeben wenn der dann diesen Link benutz wird auch dann die vorgeben Id nummer verwendet. Auser der Programmiere der Webseite war so schlau und fordert bei jeden Aufruf eine neu id an ansonsten werden die Übernohmen so lang die Sitzung dauert.

Mfg Splasch
Mit Zitat antworten
  #14 (permalink)  
Alt 19-08-2007, 14:58
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

splasch, ehrlich, ich gehe gleich popcorn kaufen...
Mit Zitat antworten
  #15 (permalink)  
Alt 19-08-2007, 15:41
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich weiß wie Sessions funktionieren. Der Apache-Server interessiert sich nicht für PHP-Sessions, das macht PHP alles selbst.

Und so wie du davon ausgehst, dass news.php rotzblöde ist, gehe ich davon aus, dass es einigermaßen gegen Content-Klau geschützt ist oder zumindest bald sein wird.
Das kann man per Konfiguration (session.referer_check, session.use_only_cookies, ...)
oder Code (empty($_SERVER['HTTP_USER_AGENT']) or session_start()) oder oder oder. Deswegen muß man für eine saubere Lösung einen ordentlichen Request senden.

Btw: Der TO hat noch nicht bestätigt, dass der Login überhaupt mit Sessions arbeitet und nicht mit HTTP-Auth.

Wie auch immer ... ich empfehle stream_context_create() als zweiten Parameter für file_get_contents.

Geändert von onemorenerd (19-08-2007 um 15:43 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:15 Uhr.