Zugriffsprobleme für ein SSL-geschütztes Verzeichnis

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

Zugriffsprobleme für ein SSL-geschütztes Verzeichnis

Postby Th. Nehrenheim » 27. June 2006 12:55

Hallo in die Runde,

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
Th. Nehrenheim
 
Posts: 10
Joined: 16. June 2006 13:45

Return to Apache

Who is online

Users browsing this forum: No registered users and 20 guests