Authorisation Header
Oliver Lehmann
- https
Hallo Forum,
irgendwie komme ich nicht weiter. Ich muss echt sagen...die rfc's sind zum k. Ich sitze hier ne Ewigkeit, und irgendwie vermag ich nicht zu erkennen, was fuer einen header genau ich sendnen muss, um mich bei dem webserver zur Benutzung eines .htaccess gexchuetzten Verzeichnisses anzumelden.
header("Authorisation = $loginname:$loginpwd");
Funzt nicht.
Es wuerde mir evtl. auch schon reichen, wenn mir jemand sagen koennte, wie ich abfragen kann, welche header der browser an den server sendet.
Danke schon mal im vorraus, und freundliche Gruesse von
Olli *g*
Hallo,
wenn du ein per .htaccess geschützes verzeichniss betreten willst, sendet der server an den browser einen 401 worauf der browser den loginwindow bringt.
Wie bzw was der Browser dann genau zu rücksendet weiß ich nicht.
Du willst ja bezwecken den loginscreen zu umgehen. du könntest auf die ENV variablen zugreifen. und es darüber versuchen. dh. die betreffenden variablen füllen bevor du auf das verzeichniss zugreifst, bzw in der url mitübergen. keine ahnung ob das funktioniert
lg
Ludwig
Hi Ludwig,
ich will schon das der Webserver vorher prueft ob der User ueberhaupt zum Besuch berechtigt ist. Und dies mittels pwd abfrage. Nur will ich halt nicht das standart abfrage fenster des browsers
MfG Olli
ich will schon das der Webserver vorher prueft ob der User ueberhaupt zum Besuch berechtigt ist. Und dies mittels pwd abfrage. Nur will ich halt nicht das standart abfrage fenster des browsers
Der einfachste Weg ist einfach das Passwort und den Username mit der Anfrage mitzusenden:
http://username:passwort@www.deineseite.de/
Damit umgehst Du das Fenster
Viele Gruesse,
Thomas Hieck
Hi Thomas,
Das ist aber evil!!! Und, was macht der IE mit gross geschriebenen usernames/PWDs? er wandelt alle imho in kleinbuchstaben um. auserdem will ich den spass nciht oben in der URL Leiste stehen haben. Es geht doch besser. nur weis ich halt noch nicht genau wie. Und, da dachte ich mir ihr koennten mir helfen :-(
MfG Olli
ich will schon das der Webserver vorher prueft ob der User ueberhaupt zum Besuch berechtigt ist. Und dies mittels pwd abfrage. Nur will ich halt nicht das standart abfrage fenster des browsers
Der einfachste Weg ist einfach das Passwort und den Username mit der Anfrage mitzusenden:
http://username:passwort@www.deineseite.de/
Das ist nicht einfach, sondern schlicht falsch, da per RFC1738 creditentials für HTTP-URLs explizit verboten sind.
nicht zu erkennen, was fuer einen header genau ich sendnen muss, um mich bei dem webserver zur Benutzung eines .htaccess gexchuetzten Verzeichnisses anzumelden.
header("Authorisation = $loginname:$loginpwd");
Du musst dem Webserver z.B. folgenden HTTP-Request übermitteln:
GET /auth/ HTTP/1.1
Connection: close
Host: www.host.de:8080
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Der Authorization-Header ist so aufgebaut (Bei Basic Authentification):
"Authorization: " "Basic" " " base64($benutzer:$passwort)
base64 meint Base64-encoded, mit Perl bekommt man das so:
use MIME::Base64;
print MIME::Base64::encode("bjoern:passwort");
Hi Bjoern,
erstmal ein megamaechtiges Danke! *g*
Leider habe ich anscheinend ein groesseres Problem als ich annahm. ICh versuche das ganze mittels PHP zu realisieren. doch wenn ich einen GET header versende, kommt folgendr error.log eintrag zustande:
[Thu May 4 20:39:58 2000] access to /var/httpd/cgi-bin/php failed for p3e9e6eba.dip0.t-ipconnect.de, reason: malformed header from script. Bad header=GET /verz1/verz2/script
ich nehem mal an, der eintrag ist abgeschnitten.
folgendes versuchte ich:
$base64=base64_encode("usr:pwd");
header("GET /verz1/verz2/script HTTP/1.1\nConnection: close\nHost: www.domain.de\nAuthorization: Basic ".$base64."\n\n");
setze ich vor /verz1 noch ein "http://www.domain.de" kommt zwar kein 500, aber es komtm nur ein "Content-type: text/html" im browserfenster, mehr nicht. das script an welches er "weiterleiten" soll, erscheint nicht :-(
Hat evtl. jemand eine Idee? (achso, $base64 enthaellt einen wert, also die fkt. funzt wollt ich damit sagen)
MfG Olli
Hallo Olli!
Leider habe ich anscheinend ein groesseres Problem als ich annahm. ICh versuche das ganze mittels PHP zu realisieren. doch wenn ich einen GET header versende, kommt folgendr error.log eintrag zustande:
[Thu May 4 20:39:58 2000] access to /var/httpd/cgi-bin/php failed for p3e9e6eba.dip0.t-ipconnect.de, reason: malformed header from script. Bad header=GET /verz1/verz2/script
In welchem Error-Log? Hast Du zwei Webserver und der eine fordert eine geschuetzte Seite vom anderen an? Dieser Log-Eintrag sieht mir eher so aus, wie wenn Du diese Header in den *Output* eines Scriptes schreibst, was natuerlich sinnlos ist, denn was soll denn der Webserver mit der Zeile "GET irgendwas HTTP/1.1" anfangen? Was Bjoern beschrieben hat, ist vielmehr das, was der Client zum Server senden muss, um eine geschuetzte Seite anzufordern.
So long
Hi Roland,
ne, nur ein Webserver...
ok, erklaere ich es so. ein script liegt in einem mit .htaccess geschutztem verz. will ich dieses "per hand" aufrufen. erscheint das standard fenster was dich zur eingabe deiens username udn deines PWD auffordert. nun wollte ich das ganze aber durch ein eigenens formular loesen. formular und script befindne sich auf dem selben webserver. ich dachte mir nun, das ichd as mit hilfe von headern loessen koennte. Doch irgendwie scheint das so nicht zu funzen
MfG Olli