Thomas Schmieder: IP-Fälschung, $REMOTE_ADDR, Scripte in die Datenbank???

Guten Morgen liebes Forum,

ich muss mir ein paar Gedanken machen zum Thema IP-Fälschung und Sicherheit von PHP-Scripten.

Im Moment habe ich einige Scripte einfach durch ein Auth-Verfahren über Fehler 401 im der Header() -Funktion geschützt. Damit wir aber im Intranet nicht dauernd die Passworte eintippen müssen, habe ich auch die REMOTE_ADDR abgefragt und einige IPs des Netzsegmentes, das Zugriff hat, "freigeschaltet".

Wie leicht ist es denn eigentlich möglich, eine REMOTE_ADDR zu fälschen? Ich gehe in meinem Laienverstand davon aus, dass es sich hierbei um die Absender-IP handelt. Wenn die nicht richtig eingetragen ist, bekommt der Absender sowieso keine Antwort. Außerdem handelt es sich bei unseren IPs ja um welche aus dem VPN-Class-C-Bereich (hinter dem Router eben...)

Außerdem kam mir so in den Sinn, die empfindlicheren Scripte selber in die Datenbank zu packen. Ist vielleicht ne ganz witzige Idee. Hat jedmand erfahrung damit, ob sich MySQL und PHP-Code in einem Textfeld vertragen oder ob da irgendwelche Zeichen "vermatscht" werden? Sonst müsste man vielleicht ein BLOB nehmen?

Da ja der wwwrun auf allerhand Sachen Zugriff haben muss, ist die Sciherheit sowieso sehr gefährlich dünn. Ich habe immer Angst davor, dass es jemand fertig bringt ein php-Script ein den für Browser zugänglichen Bereich hochzuladen. Damit dürfte er dann alles, was der wwwrun darf.

Kann man da nicht irgendwie für mehr Sicherheit sorgen?

Viele Fragen, ich weiß.
Eine Bitte trotzdem:
Bitte nur konstruktive Antworten... :-))

Liebe Grüße

Tom

  1. Guten Morgen,

    Im Moment habe ich einige Scripte einfach durch ein Auth-Verfahren über Fehler 401 im der Header() -Funktion geschützt. Damit wir aber im Intranet nicht dauernd die Passworte eintippen müssen, habe ich auch die REMOTE_ADDR abgefragt und einige IPs des Netzsegmentes, das Zugriff hat, "freigeschaltet".

    Dazu gebe ich zu bedenken, dass oft uebersehen wird, dass die meisten "Einbrueche" von innen kommen (auch wenn man's nicht glaubt) ...

    Wie leicht ist es denn eigentlich möglich, eine REMOTE_ADDR zu fälschen? Ich gehe in meinem Laienverstand davon aus, dass es sich hierbei um die Absender-IP handelt. Wenn die nicht richtig eingetragen ist, bekommt der Absender sowieso keine Antwort. Außerdem handelt es sich bei unseren IPs ja um welche aus dem VPN-Class-C-Bereich (hinter dem Router eben...)

    Dann muesste der Router schon falsch Konfiguriert sein, damit die Adresse gefaelscht werden kann. Vielleicht koennte man die Antwort des Servers erraten und dann einfach zurueckantworten; aber dann muesste man sich sehr genau mit dem Skript selber auskennen. Ausserdem sollte der Router so eingestellt sein, dass er private Adressen von aussen gar nicht zulaesst.

    Außerdem kam mir so in den Sinn, die empfindlicheren Scripte selber in die Datenbank zu packen. Ist vielleicht ne ganz witzige Idee. Hat jedmand erfahrung damit, ob sich MySQL und PHP-Code in einem Textfeld vertragen oder ob da irgendwelche Zeichen "vermatscht" werden? Sonst müsste man vielleicht ein BLOB nehmen?

    Solange keine Binaerdaten im Skript stehen, duerfte es da keine Probleme geben ... Interessanter Ansatz, muss ich mir merken :-)

    Aber so etwas ist halt nur dann sinnvoll, wenn es, wie hier, extrem um die Sicherheit geht, denn die Performance leided drastisch drunter.

    Da ja der wwwrun auf allerhand Sachen Zugriff haben muss, ist die Sciherheit sowieso sehr gefährlich dünn. Ich habe immer Angst davor, dass es jemand fertig bringt ein php-Script ein den für Browser zugänglichen Bereich hochzuladen. Damit dürfte er dann alles, was der wwwrun darf.

    Kann man da nicht irgendwie für mehr Sicherheit sorgen?

    Schwierig ... Am besten sollte man einfach mal ein paar Freaks zu einem Testsystem einladen und dann denen mal die Aufgabe stellen, das System zu knacken ...

    Ausserdem: muss denn eigentlich auf das Dateisystem, wo das Dokumentroot ist, geschrieben werden koennen? Wenn nicht, koennte man das readonly mounten ...

    Liebe Grüße

    Christian

    1. Guten Morgen Chrisian,

      Dazu gebe ich zu bedenken, dass oft uebersehen wird, dass die meisten "Einbrueche" von innen kommen (auch wenn man's nicht glaubt) ...

      Das ist im Moment noch nicht so schlimm, weil wir nur fünf bis sechs Leute sind, die auf den Server sowieso alle Vollzugriff haben (theoretisch). Wenn wir dann aber mal Büroangestellte (Verkauf) bekommen, wirds interessant. Eine IP am Client ist schnell mal umgestellt.

      Ausserdem: muss denn eigentlich auf das Dateisystem, wo das Dokumentroot ist, geschrieben werden koennen? Wenn nicht, koennte man das readonly mounten ...

      Das ist eine gute Idee. Wenn alles vom Testserver auf dasn Produktivsystem übertragen ist, kann man ja die Schreibrechte wegnehmen.

      Danke

      Thomas