htaccess und Auswertung des Logins
Mark Riemann
- webserver
Hallo,
ich weiß nicht genau, ob das Thema hierher gehört oder nach de.comp.os.unix.linux.misc.
Folgender Sachverhalt: (OS: Fedora Core 1 & Roxen-Webserver)
Ich habe Content, welchen ich nur per htaccess und htpasswd zugänglich mache. Ruft also ein User die entspr. URL auf, bekommt er die typische Eingabemaske zu sehen, welche ihn auffordert, den Login-Namen und das zugehörige Passwort einzugeben.
Gibt es eine Möglichkeit für mich die Login-Daten, welche der User eingegeben hat auszuwerten (ich habe vollen root-Zugriff - komme also auch an alle Log-Files heran)?
MfG
Mark
hallo,
Gibt es eine Möglichkeit für mich die Login-Daten, welche der User eingegeben hat auszuwerten (ich habe vollen root-Zugriff - komme also auch an alle Log-Files heran)?
Prinzipiell ja, es steht ja bei entsprechender Konfiguration alles (bis auf das verwendete Paßwort) in access_log.
Ein Beispiel für einen meiner virtuellen hosts auf dem lokalen Apache:
Grüße aus Berlin
Christoph S.
Apache:
- in der httpd.conf ist vorgegeben
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
CustomLog logs/access.log combined- in der access_log steht dann beispielweise
pc1 - schnauss [23/Jan/2005:15:00:20 +0100] "GET /ablage/ HTTP/1.1" 200 3305 "-" "Opera/7.50 (Windows NT 5.1; U)[de]"
Das heißt, der Benutzer "schnauss" hat sich heute um 15.00.20 Uhr im Verzeichnis /ablage angemeldet. Da die Statusmeldung 200 vermerkt ist, muß wohl auch das korrekte Paßwort angegeben worden sein. ;-)
Vielleicht hattest Du es nur übersehen. Aber ich benutze nicht den Apache, sondern Roxen. Aber wie dem auch sei. Ich sehe, was Du meinst. Ich muss Roxen halt so konfigurieren, dass er den User mit in die entsprechende Log-Datei schreibt.
Danke
Mark
hallo Mark,
Vielleicht hattest Du es nur übersehen. Aber ich benutze nicht den Apache, sondern Roxen.
Nein, das habe ich nicht übersehen - nur habe ich den grade nicht hier. Er hat aber, vergleichbar mit dem Apache, ebenfalls eine Konfigurationsdatei, und es gibt ebenfalls auswertbare logs. Mein Beispiel kann ohnehin nur als Vergleich dienen.
Die Prokolldatei kannst du mit einem beliebigen Script (PHP, Perl, sonstwas) auswerten, und wenn es sein muß, läßt sich das verwendete Paßwort natürlich auch abfragen.
Grüße aus Berlin
Christoph S.
Vielleicht hattest Du es nur übersehen. Aber ich benutze nicht den Apache, sondern Roxen.
Nein, das habe ich nicht übersehen - nur habe ich den grade nicht hier. Er hat aber, vergleichbar mit dem Apache, ebenfalls eine Konfigurationsdatei, und es gibt ebenfalls auswertbare logs. Mein Beispiel kann ohnehin nur als Vergleich dienen.
Die Prokolldatei kannst du mit einem beliebigen Script (PHP, Perl, sonstwas) auswerten, und wenn es sein muß, läßt sich das verwendete Paßwort natürlich auch abfragen.
A.k. ich habe Dich verstanden. Bei mir werden alle Zugriffe auf den geschützten Bereich per SSL verschlüsselt. Dort gibt es dann wiederum eine .htaccess/.htpasswd welche den Content nur nach Eingabe von Login/Passwort gestattet. Alle Zugriffe protokolliert Roxen immo in der Datei <%PATH>/Roxen/logs/secret/log. Bloß da steht z.Z. nur IP-Nr., Content, Datum, Uhrzeit. Also muss ich Roxen entspr. konf.
DANKE
Mark
hallo Mark,
Also muss ich Roxen entspr. konf.
Dokumentation dazu findest du, falls nicht auf deinem Server bereits vorhanden, unter http://docs.roxen.com/roxen/4.0/administrator_manual/logs/index.xml
Grüße aus Berlin
Christoph S.
Hi,
Folgender Sachverhalt: (OS: Fedora Core 1 & Roxen-Webserver)
Ich habe Content, welchen ich nur per htaccess und htpasswd zugänglich mache. Ruft also ein User die entspr. URL auf, bekommt er die typische Eingabemaske zu sehen, welche ihn auffordert, den Login-Namen und das zugehörige Passwort einzugeben.Gibt es eine Möglichkeit für mich die Login-Daten, welche der User eingegeben hat auszuwerten (ich habe vollen root-Zugriff - komme also auch an alle Log-Files heran)?
Ja: Baue in deine statischen (oder auch PHP) Seiten ein Bild auf logger.php oder ähnlich ein. Dieses Script erstellt ein transparentes 1x1 Image (es sollte sich aber im gleichen Verzeichnis befinden!).
In diesem Script kannst du dann PHP_AUTH_USER und PHP_AUTH_PW verarbeiten.
Beispiel:
http://www.nobaq.net/~niki/secret
User: martin
Pass: 12345
Beispielscript fürs Bild:
header("Content-type: image/png");
$im = ImageCreate(400, 800);
$bgc = ImageColorAllocate ($im, 255, 255, 255);
$tc = ImageColorAllocate ($im, 0, 0, 0);
ImageFilledRectangle ($im, 0, 0, 400, 100, $bgc);
ImageColorTransparent($im, 0);
ImageString($im, 4, 0, 0, "User: " . $_SERVER['PHP_AUTH_USER'] . ", Pass: " . $_SERVER['PHP_AUTH_PW'], $tc);
ImagePNG($im);
ImageDestroy($im);
mfg
Niki
Ja: Baue in deine statischen (oder auch PHP) Seiten ein Bild auf logger.php oder ähnlich ein. Dieses Script erstellt ein transparentes 1x1 Image (es sollte sich aber im gleichen Verzeichnis befinden!).
Ich habe es gerade bei Dir ausprobiert und scheinbar funktioniert es bei Dir. Das freut mich erst einmal.
Was ich noch nicht verstehe: Wo soll ich die Grafik einbauen? In die main/index.php welche aufgerufen wird, wenn ich http://www.nobaq.net/~niki/secret aufrufe? Oder wo?
MfG
Mark
Hi,
(...)
Was ich noch nicht verstehe: Wo soll ich die Grafik einbauen? In die main/index.php welche aufgerufen wird, wenn ich http://www.nobaq.net/~niki/secret aufrufe? Oder wo?
Wenn deine Seiten im geschützten Bereich sowieso mit PHP gemacht sind, dann vergiss den Umweg mit dem Bild und verarbeite die Variablen direkt in deinen PHP Scripts.
Der Vorteil daran ist aber, dass es sich um beliebige, statische HTML Seiten handeln kann: Du brauchst also nur in jede (statische) HTML Datei ein Bild einbinden. In meinem Beispiel liegt in http://www.nobaq.net/~niki/secret eine Datei index.html, die einfach den folgenden Code enthält:
<img src="geheimlogger.php" alt="" width="1" height="1">
Die Datei geheimlogger.php erstellt einfach ein "dummy-Bild" (siehe Code vorige Seite); der Hauptzweck des Scripts besteht darin, HTTP_AUTH_USER, HTTP_AUTH_PW zu verarbeiten.
Wenn das zu umständlich ist, wird wahrscheinlich nur mehr ein zusätzliches Stück Software helfen. (Username/Passwort werden durch einen zusätzlichen HTTP-Header übertragen, bei HTTP basic auth, siehe passendes RFC)
Niki
Wenn deine Seiten im geschützten Bereich sowieso mit PHP gemacht sind, dann vergiss den Umweg mit dem Bild und verarbeite die Variablen direkt in deinen PHP Scripts.
Nee, die sind noch statisch und das wird sich wohl mangels Zeit auch so schnell nicht ändern. Wenn ein User meinen geschützten Bereich aufruft, bekommt er eine index.html zu sehen. Also immo noch kein PHP.
Der Vorteil daran ist aber, dass es sich um beliebige, statische HTML Seiten handeln kann: Du brauchst also nur in jede (statische) HTML Datei ein Bild einbinden. In meinem Beispiel liegt in http://www.nobaq.net/~niki/secret eine Datei index.html, die einfach den folgenden Code enthält:
<img src="geheimlogger.php" alt="" width="1" height="1">
Die Datei geheimlogger.php erstellt einfach ein "dummy-Bild" (siehe Code vorige Seite); der Hauptzweck des Scripts besteht darin, HTTP_AUTH_USER, HTTP_AUTH_PW zu verarbeiten.
Ich glaube, so mache ich es auch erst einmal.
Wenn das zu umständlich ist, wird wahrscheinlich nur mehr ein zusätzliches Stück Software helfen. (Username/Passwort werden durch einen zusätzlichen HTTP-Header übertragen, bei HTTP basic auth, siehe passendes RFC)
Nee, ich glaube, dass oben werde ich gleich einmal nachher ausprobieren.
Vielen Dank
Mark
Der Vorteil daran ist aber, dass es sich um beliebige, statische HTML Seiten handeln kann: Du brauchst also nur in jede (statische) HTML Datei ein Bild einbinden. In meinem Beispiel liegt in http://www.nobaq.net/~niki/secret eine Datei index.html, die einfach den folgenden Code enthält:
<img src="geheimlogger.php" alt="" width="1" height="1">
Wärst Du vielleicht so nett und würdest mir mal Deine geheimlogger.php sowie die dazugehörige index.html per eMail zuschicken? Ich bekomme das nämlich irgendwie nicht richtig gebacken.
MfG
Mark
Ja: Baue in deine statischen (oder auch PHP) Seiten ein Bild auf logger.php oder ähnlich ein. Dieses Script erstellt ein transparentes 1x1 Image (es sollte sich aber im gleichen Verzeichnis befinden!).
In diesem Script kannst du dann PHP_AUTH_USER und PHP_AUTH_PW verarbeiten.
Ich glaube, ich habe herausbekommen, warum ich PHP_AUTH_USER nicht so ohne Weiteres verwenden kann. Auf http://www.php.net/manual/de/features.http-auth.php steht: " Die HTTP-Authentifizierung durch PHP ist nur verfügbar, wenn PHP als Apache-Modul läuft und funktioniert daher nicht mit der CGI-Version.". Genau das ist bei mir der Fall. PHP ist bei meinem Roxen als CGI eingebunden.
Gibt es dafür auch eine Möglichkeit wie PHP_AUTH_USER und PHP_AUTH_PW?
MfG
Mark