Kagee Skrevet 23. februar 2007 Del Skrevet 23. februar 2007 (endret) Hvordan kan jeg lese en side som er beskyttet bak HTTP authentication med PHP? For alle dere som har små, trådløse basestasjoner fra Telenor, har et eksempel her. Jeg prøver å lese siden på accespointet mitt som lister aktive klienter, for å lage en log over hvem som er/var koblet til. Jeg har funnet adressen direkte til oversiktssiden, men som resten av konfigurasjonssystemet, er den beskyttet av admin/admin. (skal endre dette så snart jeg får loggføringen til å funke) Endret 24. februar 2007 av Kagee Lenke til kommentar
-morten Skrevet 23. februar 2007 Del Skrevet 23. februar 2007 Se http://www.php-mysql-tutorial.com/php-tuto...remote-file.php De to første eksemplene har ikke mulighet for å sende med brukernavn/passord, men de to siste har. I tillegg kan du, avhengig av serverkonfigurasjonen, bruke det eksterne programmet wget (standard på linux, se http://www.gnu.org/software/wget/) til å lagre nettsiden lokalt, og så åpne den som en vanlig lokal fil. Altså noe sånt som exec('wget --username=blah --password=foo http://10.0.0.1/foo'); file_get_contents('lokalfil.htm'); (sikkert helt feil syntaks på alt sammen, du får slå det opp selv Lenke til kommentar
Kagee Skrevet 23. februar 2007 Forfatter Del Skrevet 23. februar 2007 (endret) Supert!! Tenkte ikke på wget - trodde ikke engang det ville funke når du skrev det. Men det funket perfekt. Jeg kan vel i teorien sende data til stdout og få det rett inn i PHP? Skal se litt på koden, men wget ligger i PATH, og var enkelt nok. EDIT: Linkene viste meg til HTTP Live Headers for FireFox, som var lettere å lese enn Wireshark. Da fant jeg ut at dette var alt jeg trengte. PHP <?$fp = fsockopen("10.0.0.140", 80, $errno, $errstr, 30); if (!$fp) { echo "Error: $errstr ($errno)<br />"; } else { $out = "GET /wlstatbl.asp HTTP/1.1"; $out .= "Host: www.example.com"; $out .= "Connection: Keep-Alive: 300"; //En slags kryptert versjon av admin/admin. //fant den med Wireshark og Live HtTP Headers for FireFox $out .= "Authorization: Basic YWRtaW46YWRtaW4="; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> Hvordan får man PHP-fargekoding her på forumet? Har sett det noen ganger.... Endret 24. februar 2007 av Kagee Lenke til kommentar
-morten Skrevet 24. februar 2007 Del Skrevet 24. februar 2007 Nettopp Dumt man ikke kan slenge med en $headers til file_get_contents() osv, så man kunne lagt til 'Authorization'-biten. Men, men. PHP-farger får man med [ PHP ]<? //kode ?>[/ PHP ] (uten space i taggene selvsagt) Lenke til kommentar
Ernie Skrevet 24. februar 2007 Del Skrevet 24. februar 2007 Spørs hvor mye det hjelper, men en gyldig URL kan se slik ut: http://brukernavn:[email protected] Lenke til kommentar
trrunde Skrevet 24. februar 2007 Del Skrevet 24. februar 2007 Supert!! Tenkte ikke på wget - trodde ikke engang det ville funke når du skrev det. Men det funket perfekt. Jeg kan vel i teorien sende data til stdout og få det rett inn i PHP? Skal se litt på koden, men wget ligger i PATH, og var enkelt nok. EDIT: Linkene viste meg til HTTP Live Headers for FireFox, som var lettere å lese enn Wireshark. Da fant jeg ut at dette var alt jeg trengte. <?php $fp = fsockopen("10.0.0.140", 80, $errno, $errstr, 30); if (!$fp) { echo "Error: $errstr ($errno)<br />\n"; } else { $out = "GET /wlstatbl.asp HTTP/1.1\r\n"; $out .= "Host: www.example.com\r\n"; $out .= "Connection: Keep-Alive: 300\r\n"; //En slags kryptert versjon av admin/admin. //fant den med Wireshark og Live HtTP Headers for FireFox $out .= "Authorization: Basic YWRtaW46YWRtaW4=\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> Hvordan får man PHP-fargekoding her på forumet? Har sett det noen ganger.... 8011421[/snapback] Fant et eksempel i php manualen, der så det ut som at det ble brukt base_64_encode av brukernavn og passord. de hadde en slik linje: $out .= "Authorization: Basic ".base64_encode(x401_user.":".x401_pass)."\r\n"; Lenke til kommentar
Kagee Skrevet 24. februar 2007 Forfatter Del Skrevet 24. februar 2007 Spørs hvor mye det hjelper, men en gyldig URL kan se slik ut: http://brukernavn:[email protected] 8013528[/snapback] Når jeg bruker: http://admin:[email protected], ber Opera fortsatt om passord, mens IE7 klager på en ugyldig adresse. Jeg vet dette funker på FTP, men på HTTP? Det var vanskelig å redigere PHP-koden etter at man hadde fått den fargekodet. Fin med muligheten, men dårlig implementert. base64_decode('YWRtaW46YWRtaW4='); ble admin:admin Lenke til kommentar
Peter Skrevet 25. februar 2007 Del Skrevet 25. februar 2007 www.php.net/curl kan kanskje brukes? Lenke til kommentar
Ernie Skrevet 25. februar 2007 Del Skrevet 25. februar 2007 Spørs hvor mye det hjelper, men en gyldig URL kan se slik ut: http://brukernavn:[email protected] 8013528[/snapback] Når jeg bruker: http://admin:[email protected], ber Opera fortsatt om passord, mens IE7 klager på en ugyldig adresse. Jeg vet dette funker på FTP, men på HTTP? Det var vanskelig å redigere PHP-koden etter at man hadde fått den fargekodet. Fin med muligheten, men dårlig implementert. base64_decode('YWRtaW46YWRtaW4='); ble admin:admin 8017188[/snapback] Vel, da kan man ikke si de kan ta inn en gyldige HTTP-url. Utgangspunktet er nemlig http://<host>:<port>/<path>?<searchpart> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå