Zugriffssteuerung per mod_rewrite oder gehts einfacher?

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

Zugriffssteuerung per mod_rewrite oder gehts einfacher?

Postby Th. Nehrenheim » 26. June 2006 15:49

Ein typischer Fall: Ich habe ein Unterverz. unterhalb unseres DocumentRoot, auf das ausschl. per SSL zugegriffen werden soll. Nur Zugriffe, die von einer bestimmte Seite kommen, sollen erlaubt sein.
Windows - Apache 2.0.58 - SSL ist eingerichtet und funktioniert - MySQL - PHP 5 und noch ein bißchen dazu.

Auf das Unterverz. subdir soll man auf zwei verschiedene Arten gelangen:
1. Nach Klick auf einen Link irgendwo wird man zu einer neuen Seite /portaldir/weiter.php weitergeleitet - die also außerhalb /subdir liegt - und darauf automatisch ein JavaScript ausgeführt, das ein neues Browserfenster öffnet. Kern der Sache: window.open("https://localhost:443/",...)
2. Für den Fall, dass dies nicht klappt gibt es auf der neuen Seite /portaldir/weiter.php einen Link mit dem simplen a href="https://localhost:443/"

Ich habe jetzt folgendes in meine ssl.conf gesetzt:
Code: Select all
    ServerName     meinserver
    DocumentRoot   "C:/Programme/Apache Group/Apache2/htdocs/subdir"

# Zugriff auf diesen DocumentRoot erfordert SSL
# aber nur, wenn Clients über diesen def. Referrer kommen, dürfen sie zugreifen
    SetEnvIf Referer "^http://localhost/portaldir/" freiesportal
    SetEnvIf Referer "^http://meinserver/portaldir/" freiesportalA
# muss scheinbar eingesetzt werden:
    SetEnvIf Referer "^https://localhost" https

<Location />
    AllowOverride None
    Order    deny,allow
    Deny     from all
    Allow    from env=freiesportal SERVER_PORT=443
    Allow    from env=freiesportalA SERVER_PORT=443
    Allow    from env=https
#    Allow    from localhost
    SSLRequireSSL
</Location>


Das Dumme ist, es funktioniert nicht.
Nach Klick auf einen Link gem. Punkt 1 oben erhalte ich den Sicherheitshinweis meines schönen IE, dann im neuen Fenster Fehler 403 (forbidden).
Bei Klick auf die neue Seite gem. Punkt 2 oben klappt alles: Ich sehe die geschützten Inhalte in subdir.
Letzteres klappt aber auch schon nicht mehr richtig, wenn ich
Code: Select all
SetEnvIf Referer "^https://localhost" https
weglasse, denn dann werden die extern unterhalb subdir abgelegten Grafiken auf der Seite nicht mehr angezeigt, d.h. nur der Inhalt der Daten aus der MySQL-DB wird angezeigt.

Weiter geht es dann auf der Seite nicht. Ich denke daher, ich muss den URL irgendwie umschreiben, aber mod_rewrite ist angeblich "cool vodoo". Na gut. Vielleicht geht das aber auch mit der Deklaration eines Alias ?, etwa
Code: Select all
Alias / /subdir

Etwas in der Art ?
Code: Select all
<Directory />
    RewriteEngine on
#    RewriteCond ... (immer, 1 = 1)
    RewriteRule ^(.*) https://%{SERVER_NAME}subdir/%{REQUEST_URI} [L]
</Directory>


Mit welcher Methode geht man da am effektivsten heran ?

Th. :?
Th. Nehrenheim
 
Posts: 10
Joined: 16. June 2006 13:45

Return to Apache

Who is online

Users browsing this forum: No registered users and 16 guests