Philipp Hasenfratz: Falsche Information meinerseits (glaube ich jedenfalls)

Beitrag lesen

Halihallo Sven

REMOTE_PASS meinte ich. Warum wird dies eigentlich nicht übertragen? - Wäre IMO sinnvoll, natürlich auch eine potenzielle Sicherheitslücke. Wie geht dann (oder überhaupt?) eine Authentication _nur_ über CGI (nicht über .htaccess)?

Wenn der Apache beispielsweise auf die Passwortdaten zugreift, die das CGI-Skript irgendwo abgespeichert hat, kann man .htaccess-Methoden benutzen. Möglich sind dabei u.a. die berühmte .htpasswd-Datei (die man per Skript generieren lassen kann), oder auch eine MySQL-Datenbank (was bei hohen Userzahlen performanter ist).

Ist mir bewusst. Schöner wäre es jedoch gewesen, wenn man ohne .htpasswd und .htaccess auskommen könnte und die Authentifizierung _allein_ über CGI realisieren könnte. Ein Perlscript, welches REMOTE_USER und REMOTE_PASS einliest, mit Daten woher auch immer vergleicht und dann Entscheidungen trifft (Status 200/401).

Die Angabe "REMOTE_USER" ist jedenfalls schon authentifiziert.

Ja, schön wäre, wenn auch auf REMOTE_PASS zugegriffen werden könnte.

CGI-Skripte können natürlich auch den gesamten HTTP-Verkehr kriegen. Dann sind sie für's Parsen und verstehen der empfangenen Daten aber auch selbst verantwortlich. Ein gutes Beispiel dafür wäre z.B. Michael Schröpls "http_trace.pl". Das kommt (ich müßte nachgucken, wie genau - sicherlich gibts dazu ein Modul) irgendwie an den vom Browser gesendeten Header heran und gibt ihn weiter an den zu befragenden Server.

Das wäre, wie Daniel schon sagt, die Lösung. Nur müsste man IMO einen Webserver emulieren (sprich listen auf dem 80 Port...), was keine sehr gute Lösung ist (zwei Programme auf dem selben Port...). Ich wüsste nicht, wie man sonst an die Requestdaten des Clients kommt. CGI soll ja _genau_ die Schnittstelle zwischen Request, wie er beim Webserver ankommt und dem Script und dort wird bekannterweise nicht der gesamte Request abgebildet.
Wie Daniel wäre ich natürlich auch an einer Lösung interessiert.

Viele Grüsse

Philipp