und (PERL): .htaccess, REMOTE_USER und "Location: ..."
Markus Kaufmann
- cgi
0 the-FoX0 Markus Kaufmann0 n.d. parker
Hallo, liebes Forum!
Seit ein paar Tagen quäle ich mich mit folgenden Problem herum:
Verschiedenste Benutzer besitzen auf dem WebServer eigene Verzeichnisse; diese sind mittels .htaccess so geschützt, daß nur die beiden Admins sowie der User selbst darauf zugreifen können. Das klappt auch wunderbar.
Aus Gründen der optischen Gestaltung möchte ich es nun vermeiden, daß der Benutzer die URL "http://www.blabla.com/benutzer/MeinName" eingeben, und danach den Authentifizierungsdialog ausfüllen muß.
(Wenn der Benutzer es trotzdem macht, ist es noch kein Problem, da die Zugriffskontrolle über die .htaccess eh wunderbar funktioniert. Ich möchte auch noch dazu sagen, der Server ist nicht unserer, d.h. ich kann den Benutzern keine UID/GID zuteilen, sondern diese lediglich selbst in einer Datei außerhalb des http-Verzeichnis verwalten.)
Außerdem hat sich herausgestellt, daß die Leute immer wieder darauf vergessen, Groß-/Kleinschreibung zu berücksichtigen, die URL falsch tippen, sich kein Bookmark setzen können (und wenn doch, dann finden sie´s nicht mehr ;-( Und beim kleinsten Fehler schreiens natürlich gleich ...)
Darum hab ich gleich auf der Eingangsseite ein kleines Formularfeld, wo Benutzername und Passwort eingegeben werden können, und die Benutzer danach zu Ihrem jeweiligen Verzeichnis weitergeleitet werden.
Und genau da liegt mein Problem - ich möchte vermeiden, daß jetzt nochmals der Authentifizierungsdialog aufspringt, und die Benutzer die Daten nochmals eingeben müssen. Ohne der .htaccess würde es ja wunderbar klappen, nur ist das nicht sinnvoll, wenn jeder die privaten Daten des anderen einsehen kann.
Wie kann ich nun den bereits in den Formularfeldern eingegebenen Usernamen und das Passwort mit dem Perlskript, daß die Weiterleitung übernimmt, mit übermitteln, um das doppelte Eingeben von Usernamen und Passwort zu vermeiden?
Hier im Forum (-archiv) konnte ich nichts adäquates dazu finden, außer daß einige ein ähnliches Problem hatten, leider ohne Lösungsansatz.
Mir selbst ist bereits der Gedanke gekommen, daß man einen anderen Header senden könnte; aber da bin ich nicht weitergekommen.
Danke im voraus für eure Bemühungen!
Markus
Du willst also den usern ein Eingang auf der tartseite bieten ohne, daß sie direkt ins Unterverzeichnis müssen und das htaccess-Popup bekommen ?!
Hab ich das korrekt verstandne ?!
dann kannst Du doch http://username:passwort@lala.com/lala
nutzen. mußt halt nur das Verzeichnis generieren.
Was die groß und kleinschreibung angeht.
Du könntest doch alle Usernamen automatisch in Kleinbuchstaben umwandeln und das verzeichnis auch... so ist es egal ob Karl sich anmeldet oder KaRl =o)
Hallo, the-FoX:
Du willst also den usern ein Eingang auf der tartseite bieten ohne, daß sie direkt ins Unterverzeichnis müssen und das htaccess-Popup bekommen ?!
Hab ich das korrekt verstandne ?!
Ja, genauso würde ich das gerne haben möchten wollen. :-)
dann kannst Du doch http://username:passwort@lala.com/lala
nutzen. mußt halt nur das Verzeichnis generieren.
Tut mir leid, das hab ich schon versucht, funktioniert aber leider nicht ... wenn ich das mache - egal, ob aus dem Skript oder per manueller URL-Eingabe, bekomme ich trotzdem das Fenster zur Userauthentifizierung.
Die Verzeichnisgenerierung etc. funktioniert alles wunderbar, nur eben der Zugriff mittels der Formulardaten nicht.
Oder gibt es dazu spezielle Einstellungen in der .htaccess? (Zugriff auf die Servereinstellungen hab ich leider keinen)
Was die groß und kleinschreibung angeht.
Du könntest doch alle Usernamen automatisch in Kleinbuchstaben umwandeln und das verzeichnis auch... so ist es egal ob Karl sich anmeldet oder KaRl =o)
Ja, den Gedanken hatte ich auch schon, hab es aber dann wieder verworfen ... bei den betroffenen Benutzern finden sich auch Kunden von uns, und da erlebe ich halt oft die wundersamsten Dinge ...
Trotzdem Danke, Markus.
eigendlich dürfte das Fenster aber nicht kommen....
bei mir hats bis jetzt immer funktioniert.... =o(
versteh ich nicht.
Groß- Kleinschreibung ist natürlich entscheidend
Hallo, the-FoX:
eigendlich dürfte das Fenster aber nicht kommen....
Tut es aber trotzdem ... siehe dazu auch die Antwort von n.d.parker
[...]
Groß- Kleinschreibung ist natürlich entscheidend
Ja, das ist schon klar ...
Trotzdem Danke, Markus
Hallo, the-FoX:
eigendlich dürfte das Fenster aber nicht kommen....
Tut es aber trotzdem ... siehe dazu auch die Antwort von n.d.parker
[...]
Groß- Kleinschreibung ist natürlich entscheidend
Ja, das ist schon klar ...
Trotzdem Danke, Markus
ich dachte das wär nen standard ?! =o/
schade, dann weiß ich so spontan auch keine Lösung...
Moin,
ich dachte das wär nen standard ?! =o/
nein, es ist sogar explizit verboten: http://www.faqs.org/rfcs/rfc1738.html, Abschnitt 3.3
Viele Gruesse,
n.d.p.
Hallo, the-FoX:
dann kannst Du doch http://username:passwort@lala.com/lala
nutzen. mußt halt nur das Verzeichnis generieren.
Tut mir leid, das hab ich schon versucht, funktioniert aber leider nicht
Der Grund ist folgender: Das Script macht ein redirect auf die Seite und der Server schickt die Datei zum Browser. Das die aber in einem per .htaccess geschützten Verzeichnis liegt, wird IMMER die Authorisierung gefordert. Wenn die erfolgreich war, dann ist das dem Browser bekannt und er sendet JEDES MAL Username und Password mit. Dieses erste mal gibts beim 'redirect' nicht, also macht der Browser das Fenster auf...
Gruß Frank
Hallo, FrankS:
[...]
Der Grund ist folgender: Das Script macht ein redirect auf die Seite und der Server schickt die Datei zum Browser. Das die aber in einem per .htaccess geschützten Verzeichnis liegt, wird IMMER die Authorisierung gefordert. Wenn die erfolgreich war, dann ist das dem Browser bekannt und er sendet JEDES MAL Username und Password mit. Dieses erste mal gibts beim 'redirect' nicht, also macht der Browser das Fenster auf...
Hmm ... das ist einleuchtend.
Ich hab eigentlich immer gedacht, daß, wenn die Authentifizierung stattgefunden hat, daß irgendwo gepeichert wurde und bis zu einem Timeout gültig bleibt.
Aber wenn der Browser den Username und das Password mitschickt, muß das doch auch softwaretechnisch realisierbar sein - das bringt mich wieder zu der Überlegung, mittels (irgend) eines geeigneten Headers die entsprechenden Daten mit zu übertragen ...
Weiß hier jemand darüber Bescheid, wie die Header aufgebaut sind bzw. in welchem RFC das zu finden ist?
Danke, Markus
Moin,
Weiß hier jemand darüber Bescheid, wie die Header aufgebaut sind bzw. in welchem RFC das zu finden ist?
selbstverstaendlich ;-))
http://www.faqs.org/rfcs/rfc2617.html
Viele Gruesse,
n.d.p.
Moin,
dann kannst Du doch http://username:passwort@lala.com/lala
Das ist Unsinn. HTTP-URLs in dieser Form sind nicht gueltig und versagen auf nicht fehlertoleranten Systemen.
Markus: du koenntest einen Link "zur Anmeldung" auf ein Script setzen, welches in einem Verzeichnis liegt, wo *alle* .htaccess-User Zugriff haben (require group soundso vielleicht). Dieses Script wertet REMOTE_USER aus und schickt einen HTTP-Redirect zum entsprechenden Verzeichnis.
Viele Gruesse,
n.d.p.
Moin,
Hallo, n.d. parker
[...]
HTTP-URLs in dieser Form sind nicht gueltig und versagen auf nicht fehlertoleranten Systemen.
Scheinbar ist der Server, auf dem das laufen soll, nicht fehlertolerant :-)
Markus: du koenntest einen Link "zur Anmeldung" auf ein Script setzen, welches in einem Verzeichnis liegt, wo *alle* .htaccess-User Zugriff haben (require group soundso vielleicht). Dieses Script wertet REMOTE_USER aus und schickt einen HTTP-Redirect zum entsprechenden Verzeichnis.
Ja, den Gedanken hatte ich auch schon, nur hab ich mich bisher davor gedrückt, weil ich dachte, es muß doch auch eleganter gehen.
Aber scheinbar hab ich keine andere Wahl, als es so zu machen ...
Danke, Markus!
Hallo n.d.!
dann kannst Du doch http://username:passwort@lala.com/lala
Das ist Unsinn. HTTP-URLs in dieser Form sind nicht gueltig und versagen auf nicht fehlertoleranten Systemen.
Hier stellte ich fest, dass auch Browser die URL unterschiedlich bearbeiten. Während IE und Netscape 4.51 problemlos ins Verzeichnis wechelsten, brachte Opera die folgende Meldung (hier ein bearbeitetes GIF davon, Username ist natürlich *nicht* das Wort "zensiert" und das PW besteht *nicht* aus 7 Zeichen *gg*, ferner heißt das Verzeichnis anders *gg*):
<img src="http://www.atomic-eggs.com/temp/zensiert.gif" border=0 alt="">
Patrick
<hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>