PERL - Statuscode 401 403 verarbeiten
Jens
- cgi
Hallo,
es gibt ja die verschiedenen Statuscodes bei einem HTTP-Request.
Mich interessieren dabei 401 403.
Gibt es eine Möglichkeit aus einem Script heraus diese zu erkennen und zu verarbeiten. Ich kann in diesem Fall die Codes nicht per htaccess übergeben.
Der konkrete Fall.
In einer per htpasswd geschützten Seite wird ein Script gestartet, welches nun verschiedene Funktionen erfüllt und schließlich innerhalb der Seite einen Text ausgibt. Unter anderem den Namen des Users der sich gerade eingeloggt hat.
Wenn dort nun durch ein Fehler Username und Pass ins Username-Feld eingetragen werden, wird dieser Wert geloggt, und das soll nun auf keinen Fall passieren. Darum soll das Script den Namen erst annehmen wenn der Statuscode 403 entsteht.
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Jens
PS: Mir reichen auch Tipps für die Denkrichtung, denn im Moment fehlt mir absolut der Ansatzpunkt.
Hi Jens,
Gibt es eine Möglichkeit aus einem Script heraus diese zu erkennen und
zu verarbeiten.
Jein - jedenfalls nicht so, wie Du Dir das vorstellst.
Es ist nicht Dein Skript, das irgendwas "erkennen" müßte.
Ich kann in diesem Fall die Codes nicht per htaccess übergeben.
Mit .htaccess kannst Du gar nichts "übergeben". Aber .htaccess wäre
eine sinnvolle Möglichkeit, das zu realisieren, was Du brauchst.
Wenn dort nun durch ein Fehler Username und Pass ins Username-Feld
eingetragen werden, wird dieser Wert geloggt
Von wem?
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Hm ...
PS: Mir reichen auch Tipps für die Denkrichtung, denn im Moment fehlt mir absolut der Ansatzpunkt.
Also: Derjenige, der etwas erkennen kann (und muß), ist der Webserver.
Falls diese ein Apache wäre, könntest Du per Konfiguration
(ErrorDocument) URLs definieren, welche im Falle eines entsprechenden
HTTP-Statuscodes aktiviert werden sollen. Dazu müßt Du natürlich die
Konfiguration des Webservers ändern bzw. erweitern (.htaccess) dürfen.
Ein solcher URL kann insbesondere auch ein CGI-Skript sein!
Und dieses CGI-Skript wird dann _nur_ im Falle des entsprechenden
HTTP-Status aufgerufen und erhält über die Environment-Variablen der
CGI-Schnittstelle diverse Informationen über den vorherigen Zugriff.
Ich kann mir vorstellen, daß Du dabei die Benutzerkennung bekommst
($ENV{'REMOTE_USER'}) - aber wohl _nicht_ das Kennwort.
Viele Grüße
Michael
Danke für Deine Antwort, dass heißt für mich das ich alles umstricken muss - aber wenn es dann nicht anders geht, dann nicht.
Die eigenen Fehlerseiten benutze ich selber schon eine ganze Zeit, gebe damit entsprechend angepasste Fehlermeldungen raus und logge dazu noch die Fehler.
(Ist mein erstes Script für das sich jemand interessiert hat und es auch einsetzt *mächtigstolzbin*)
Ich brauche nur den Usernamen, und die Passwörte kenn ich sowieso alle :).
Das eigentliche Problem ist folgendes. Wenn jemand den Usernamen "User" und das Passwort "Pass" hat, und er beides in das Userfeld schreibt, versehentlich, "UserPass" - dann erscheint das so auch in der Anwesenheitsliste - obwohl er logischerweise wegen fehlendem/falschen Passwort keinen Zugriff hat und vom Webserver abgewiesen wird. Andere können dann neben dem Namen auch das Passwort lesen. Und das ist nicht so wie es sein sollte. Darum wollte ich in diesem Script eben den Status überprüfen, da das Script auch eine Meldung in Form einer Anwesenheitsliste ausgeben soll.
Hi,
Wenn jemand den Usernamen "User" und das Passwort "Pass" hat, und er
beides in das Userfeld schreibt, versehentlich, "UserPass" - dann
erscheint das so auch in der Anwesenheitsliste
warum?
Was ist eine "Anwesenheitsliste", und warum wird man in diese aufgenommen,
obwohl die "Anmeldung" doch gescheitert ist?
Ich denke, Du kämpfst hier mit den Symptomen, statt die Ursache zu
beheben.
Viele Grüße
Michael