Übernehmen der .htaccess Anmeldung in ein CGI Script
CrazeeCat
- cgi
Hallo,
ich habe eine PHP/CGI Anwendung, die ein Login erfordert. Die Anwendung ist Teil eines mittels .htaccess geschützten Bereiches. Momentan muss sich der User zweimal anmelden - einmal um in den geschützten Bereich zu gelangen und nochmal, um die PHP/CGI Anwendung nutzen zu können.
Gibt es eine Möglichkeit, die Daten aus der .htaccess Anmeldung (inkl. Passwort) der anderen Anwendung zu übergeben, so dass nur noch eine Anmeldung erforderlich ist?
Vielen Dank für Eure Hilfe
CU
Moin!
Gibt es eine Möglichkeit, die Daten aus der .htaccess Anmeldung (inkl. Passwort) der anderen Anwendung zu übergeben, so dass nur noch eine Anmeldung erforderlich ist?
PHP kennt Username und Passwort der .htaccess-Authentifizierung. Lass dir einfach mal mit phpinfo() die Variablen ausgeben, die PHP kennt. Irgendwas mit "PHP_AUTH_USER" sollte dir da ins Auge springen - und das kannst du dann als Basis nehmen.
Ich weiß nicht, ob einem x-beliebigen CGI diese Information über das Environment auch zur Verfügung steht. Aber warum nicht? Versuch macht kluch. ;)
- Sven Rautenberg
Moin!
N'abend Sven,
Irgendwas mit "PHP_AUTH_USER" sollte dir da ins Auge springen - und das kannst du dann als Basis nehmen.
Anmerkung: nur wenn der Webserver / Apache auch demensprechend konfiguriert ist (bei meinem Webspace-Provider z.B. ist das Feature ausgeschaltet).
Ich weiß nicht, ob einem x-beliebigen CGI diese Information über das Environment auch zur Verfügung steht.
Environment ist Environment; in Perl z.B. (wenn der Name der Env-Variable richtig ist) über $ENV{'AUTH_USER'})
Nachgefragt: Ander herum
===========
Kennt jemand einen Weg, wie ich einen .htaccess -geschützten Bereich temporär freigeben kann, nachdem sich der User auf einem HTML-Form mit nachgeschaltetem Perl-CGI angemeldet hat?
Grüße
K@rl
Hi,
ich habe eine PHP/CGI Anwendung, die ein Login erfordert.
Die Anwendung ist Teil eines mittels .htaccess geschützten Bereiches.
Momentan muss sich der User zweimal anmelden - einmal um in den
geschützten Bereich zu gelangen und nochmal, um die PHP/CGI Anwendung
nutzen zu können.
Gibt es eine Möglichkeit, die Daten aus der .htaccess Anmeldung (inkl.
Passwort) der anderen Anwendung zu übergeben, so dass nur noch eine
Anmeldung erforderlich ist?
wenn Deine PHP-Anwendung das Kennwort prüft, sieht es schlecht aus.
Denn meines Wissens kommst Du da nicht ohne weiteres ran.
Die CGI-Schnittstelle jedenfalls hat keine Chance; ob PHP als Apache-Modul da intern etwas drehen kann, weiß ich im Moment nicht (glaube aber, mich zu erinnern, daß wir genau diese Diskussion vor ein paar Wochen schon mal hatten -> Archiv fragen).
Wenn Deinen PHP-Anwendung lediglich geschützt sein soll, dann stecke sie einfach in denselben Realm wie Deine Anmeldeseite.
Und wenn sie die Benutzerkennung braucht - die steht im CGI-Environment.
Nur das Kennwort eben nicht.
Das kann im allgemeinen Fall dort auch gar nicht stehen, denke ich - weil es je nach AuthType selbst dem Webserver überhaupt nicht bekannt ist.
Falls das Passwort nämlich verschlüsselt geliefert wurde (AuthType Digest), kann der Webserver es bestenfalls mit einem ebenfalls verschlüsselt gespeicherten Kennwort vergleichen, Dir aber nicht das Original sagen. (keine Umkehrfunktion für MD5)
Falls Deine PHP-Anwendung genauso schlau ist, also auch ihre Passworte verschlüsselt speichert, dann könnte sie zufällig kompatibel zur HTTP-Authentication sein ...
Du siehst, da stecken eine Menge "wenns" drin.
Prinzipiell geht, was Du willst, solange Dir niemand irgendwas Notwendiges zugenagelt hat.
Und "AuthType Digest" ist zwar von 1997, aber Browser wie Netscape 6.2.2 sind leider noch nicht in der Lage, solche neuzeitlichen Erfindungen bereits zu unterstützen ...
Viele Grüße
Michael