Sven Rautenberg: IP-Blogger mit SSL-Zwang

Beitrag lesen

Moin!

ich habe ein Internetseite, die nur unter SSL-Zwang und geloggter IP-Adresse betreten werden soll.

SSL-Zwang kriegt man am sichersten hin, indem man keinen Webserver auf dem HTTP-Port anbietet.

Als freundliches Verhalten gegenüber dem User wäre die Alternative dazu, auf dem HTTP-VHost (der komplett separat vom SSL-VHost sein kann) einen Redirect auf HTTPS zu machen. mod_rewrite mit sämtlichen URLs (.*) auf https://www.example.org/$1 - fertig. Die Abwesenheit auslieferbarer Inhalte auf dem HTTP-VHost macht die Sache extrem sicher.

Den SSL-Zwang habe ich bereits realisiert! Zuvor aber noch zur Erklärung Grundlegendes. Ich habe eine Internetseite des Formats http://www.example.com/blabla. Ist $_SERVER['HTTPS'] nicht vorhanden, also direkter Aufruf dieser Addresse und Weiterleitung auf https://ssl.ssl.ssl/www.example.com/blabla. Hier ist nun $_SERVER['HTTPS'] 'on' und Inhalt darf angezeigt werden. Nun das Problem mit dem IP-Blogger. Bei Aufruf von http://www.example.com/blabla wird mit SQL-Database ein IP-Adressen Abgleich vorgenommen. Wenn User-IP drinne ist, dann SSL-Weiterleitung, wenn nicht kommt Fehlermeldung. Bei direktem Aufruf von SSL-Adresse wirkt jedoch IP-Blogger nicht da jetzt, User-IP der Server-IP von www.example.com entspricht. Wenn SSL-Addresse direkt aufgrufen wird, dann wird Inhalt direkt angezeigt. Das soll aber nicht sein, denn User-IP Abgleich mit SQL-Database wurde unterwandert. Wie kann man die Lücke schließen??

Wenn du aus irgendeinem Grund Sicherheit brauchst, dann musst du das Geld für einen eigenen SSL-Server ausgeben. Mit diesem SSL-Proxy vornevor kriegst du deine Anforderungen prinzipiell nicht hin, weil dieser Proxy gegenüber dem Internet HTTPS macht, gegenüber deinem Server aber nur ganz normales HTTP - und obendrein eben als Proxy zwischendrin sitzt, d.h. dein Server sieht nur dessen IP, nicht die des Originalrequests.

Wenn die IP also als Filterkriterium dienen soll, musst du die nicht VOR dem Redirect auf HTTPS prüfen, sondern DANACH beim eigentlichen HTTPS-Request. Der Check davor ist hinsichtlich der Sicherheit absolut bedeutungslos.

Was haben deine Recherchen hinsichtlich des Vorkommens der IP in anderen Servervariablen ergeben?

- Sven Rautenberg