ich brauche nochmals einen Tipp. Für mein Problem, das sicher rehct üblich ist, gibt es wohl mehrere Lösungsansätze. Kann mir vielleicht jemand mal einen aufzeigen ?
Ich habe ein PHP-Skript, über das Benutzer auf demselben Server in ein anderes Verzeichnis htdocs/S wechseln können, das besonders geschützt sein soll. Für dieses Verzeichnis S ist daher ein virtueller SSL-Host definiert. Benutzer sollen per HTTP keinen Zugriff auf S haben. Es soll auch überprüft werden, ob ein Benutzer, der auf S zugreift von einer definierten Seite kommt (Referrer-Überprüfung), denn nur wer von dieser Seite kommt, darf zugreifen.
Unterhalb von S gibt es aber ein Verzeichnis A, auf das man ausnahmsweise auch durch Eingabe des URL gelangen soll, also z.B. einfach über https://localhost:443/verzA .
Ich bin so weit, dass der Zugriff per HTTP nicht mehr geht (Forbidden). Meine httpd.conf:
- Code: Select all
[...]
# Zugriff auf das Verz. S: nicht durch diesen Host
<Directory "C:/Programme/Apache Group/Apache2/htdocs/verzS">
Order deny,allow
Deny from all
</Directory>
[...]
meine ssl.conf:
- Code: Select all
[...]
<VirtualHost _default_:443>
ServerName meinserver
DocumentRoot "C:/Programme/Apache Group/Apache2/htdocs/verzS"
[...]
# Zugriff auf diesen DocumentRoot erfordert SSL
# aber nur, wenn Clients über diesen def. Referrer kommen, dürfen sie zugreifen
# Referrer 1: auf Seite http://localhost/xyz/index.php, window.open("https://localhost:443/",...
# Referrer 2: auf Seite http://localhost/xyz/zumverzS.php, Klick auf <a href="https://localhost:443/" target=_blank...
SetEnvIf Referer "^http://localhost/xyz/" frei0
# muss scheinbar eingesetzt werden:
SetEnvIf Referer "^https://localhost/" https
<Location />
AllowOverride None
Order deny,allow
Deny from all
Allow from env=frei0 SERVER_PORT=443
Allow from env=https
Allow from localhost
SSLRequireSSL
</Location>
</VirtualHost>
Trotzdem funktioniert manches noch nicht:
Zugreifen kann ich per HTTPS, aber nur über den Referrer 2.
Bei Referrer 1 steht in der Adressleiste "https://localhost:443/", Zugriff forbidden.
Bei Refferer 2 steht dasselbe in der Adressleiste, die erwartete Seite aus dem Verz. S wird aber angezeigt.
Auf alle Verzeichnisse unterhalb von S habe ich keinen Zugriff.
Thomas