Sven Rautenberg: und es geht doch ! htaccess über formular

Beitrag lesen

Moin!

Das funktioniert überall (und das ist keine Formularabfrage, sondern eine htaccess-abfrage), siehe dazu http://www.ietf.org/rfc/rfc2396.txt Punkt 3.2.2

Zitat: "Some URL schemes use the format "user:password" in the userinfo
   field. This practice is NOT RECOMMENDED, because the passing of
   authentication information in clear text (such as URI) has proven to
   be a security risk in almost every case where it has been used."

Außerdem werden in diesem Dokument nur allgemein URLs beschrieben, nicht aber konkret HTTP.

In RFC 1738 http://www.ietf.org/rfc/rfc1738.txt heißt es nämlich:
Zitat: "   An HTTP URL takes the form:

http://<host>:<port>/<path>?<searchpart>

where <host> and <port> are as described in Section 3.1. If :<port>
   is omitted, the port defaults to 80.  No user name or password is
   allowed.  <path> is an HTTP selector, and <searchpart> is a query
   string. The <path> is optional, as is the <searchpart> and its
   preceding "?". If neither <path> nor <searchpart> is present, the "/"
   may also be omitted."

Im gleichen Dokument wird für FTP-URLs die Angabe von Usernamen und Passwort explizit erlaubt. Es ist also wirklich eine Spezialität der HTTP-URL. Dass Browser die Verhaltensweise von FTP-URLs übernommen haben, macht es ja gerade so schwierig, weil es eben nicht vorausgesetzt werden darf. Außerdem ist es wahrscheinlich ein Sicherheitsproblem, wenn Usernamen und Passwörter öffentlich in Links auftauchen.

Es mag sein, dass eine spätere RFC diese Definition abändert - ich habe aber keine RFC gefunden, die sich ebenfalls um URLs und HTTP kümmert.

Nachteil: in den Logfiles bleibt die Referenz-URI dann auch so erhalten "username:passwort@forum.de.selfhtml.org/my/".

Nein, das nun gerade nicht. Der _Browser_ setzt die Authentifizierungsangaben um in entsprechende HTTP-Header und merkt sich die Angaben, während er sie aus der URL entfernt. Der Server kann bei Falschangaben immer noch 401 zurücksenden (was das Authentifizierungsfeld wieder auf den Plan ruft - also ist die Formularlösung doch keine echte Lösung, weil Falscheingaben wieder zu einem "undesignten" Eingabefeld führen - und vermutlich zu Benutzerverwirrung), und er wird den Usernamen in den Logfiles im entsprechenden Feld aufführen, falls entsprechend konfiguriert (default-Einstellung beim Apache ist es jedenfalls).

--

 - Sven Rautenberg