Session-ID in htaccess auswerten

Alles, was den Apache betrifft, kann hier besprochen werden.

Session-ID in htaccess auswerten

Postby Goldsucher » 29. April 2010 11:54

Hallo Leute,

ich tüftle gerade an einem PHP-System mit geschützen Bereichen. Die Bereiche sind aber keine Ordner, es geht nicht darum Ordner zu schützen. User sollen nur nach Anmeldung eine Session-Id erhalten und können dann bestimmte Inhalte abrufen oder in diesen Bereichen navigieren. Bis hier hin mit PHP-Sessions easy. Jetzt will ich aber auch Dokumente, z.B. Bilder, die sich in diesem Bereich befinden schützen.

Prinzipiell geht das ganz einfach, indem ich die Bild-Requests in einer .htaccess auf ein PHP-Skript umleite, welches dann an Hand der Session-Id die Berechtigung prüft und bei Erfolg mit readfile() rausgibt. Nur: dabei würde auch bei dem popeligsten Bildchen der PHP-interpreter (300kB Arbeitsspeicher) gestartet, was, wenn ich es richtig einschätze, zu einer starken Belastung des Servers führen könnte.

Meine erste Idee war, mit
Code: Select all
RewriteCond  absoluter_cookie_pfad/sessid -f

zu testen, ob die Anfrage einer gültigen Session angehört. "sessid" will natürlich erstmal rausgefummelt sein, müsste aber gehen. Nur: der User hätte dann, wenn er pfiffig genug ist, mit dieser sessid Zugriff auf alleDateien.

Zweite Idee: Zusätzlich zur ersten Idee verschlüssele ich den Dateinmamen mit einem Private-Key und der sessid. z.B.
Code: Select all
md5($pk.$filename.$sid)

Im Imagetag der aus einer Session generierten Seite könnte das so aussehen:
Code: Select all
<img src='lf2g5dkdidlfijr4f5f4f5454r_chefbohrtindernase.jpg' />

In der .htaccess will ich nun den Dateinamen wieder auseinander nehmen. Nur: für eine Überprüfung müsste ich in der htaccess eine Verschlüsselung und einen Vergleich machen können. Geht das und wenn ja wie?
Goldsucher
 
Posts: 4
Joined: 06. January 2006 19:17

Re: Session-ID in htaccess auswerten

Postby Xardas der Dunkle » 29. April 2010 17:07

Nur: dabei würde auch bei dem popeligsten Bildchen der PHP-interpreter (300kB Arbeitsspeicher) gestartet, was, wenn ich es richtig einschätze, zu einer starken Belastung des Servers führen könnte.

Solange du PHP nicht über CGI ausführst wird der PHP-Interpreter eh nur einmal geladen. (Nicht zu verwechseln mit FastCGI hier wird der Interpreter auch nur einmal geladen!).
Bei Xampp läuft PHP übrigens standardmäßig als Modul.

Nur: für eine Überprüfung müsste ich in der htaccess eine Verschlüsselung und einen Vergleich machen können. Geht das und wenn ja wie?

Könntest du höchstens über eine RewriteMap mit Prog-Aufruf lösen. (Rewrite-Maps sind aber nur in regulären Konfig-Dateien erlaubt, also nicht in .htaccess).
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Re: Session-ID in htaccess auswerten

Postby Goldsucher » 29. April 2010 17:25

Xardas der Dunkle wrote:
Nur: dabei würde auch bei dem popeligsten Bildchen der PHP-interpreter (300kB Arbeitsspeicher) gestartet, was, wenn ich es richtig einschätze, zu einer starken Belastung des Servers führen könnte.

Solange du PHP nicht über CGI ausführst wird der PHP-Interpreter eh nur einmal geladen. (Nicht zu verwechseln mit FastCGI hier wird der Interpreter auch nur einmal geladen!).
Bei Xampp läuft PHP übrigens standardmäßig als Modul.

Das hört sich ja gut an! Was sagt mir dann aber eigentlich memory_get_peak_usage() genau? Die 300Kb bekomme ich schon bei einer völlig leeren Seite, die nur diesen Aufruf enthält. Wordpress braucht gelegentlich 8Mb (!).
Goldsucher
 
Posts: 4
Joined: 06. January 2006 19:17


Return to Apache

Who is online

Users browsing this forum: No registered users and 3 guests