Auf anderen Server zugreifen per PHP

nitrit

Angesehenes Mitglied
Hallo Ayomler,

folgendes Szenario:

Es gibt eine Basisseite mit einer Datenbank (MySQL) und viele Fileserver auf denen nur Daten liegen... (natürlich vor willkürlichem Zugriff gesperrt)

1. Basisseite wird angefragt --> sucht per gegebener ID (z.B. 03) nach Einträgen
2. Eintrag "03" gefunden --> Basisseite sucht den Fileserver auf dem der Eintrag "03", also die Datei "03" liegt.
3. Server gefunden, Dateiname bekannt

Wie würdet ihr hier nun den Zugriff auf die Datei machen, um sie von der Basisseite aus dem User bereit zu stellen, sodass dieser denke, die Datei wäre auf dem Server der Basisseite?

Meine Idee:
Script auf Basisseite fragt Datei auf Fileserver an und liest diese ein und gibt sie nach einlesen simultan Stück für Stück dem User aus (fpassthru o.ä. für PHP)

Damit der Fileserver auch weiss ob der Zugriff berechtigt ist, dachte ich an eine Anfrage wie:
fileserver_handler.php?apikey=1111111111111111111111111&datei=03

Ist das Sicherheitstechnisch vertretbar? Der API-Key sollte ja eigentlich von niemandem rausgefunden werden können, insofern die Anfrage nur über das PHP-Script auf der Basisseite geht...

Grüße
 
QUOTE (nitrit @ Mi 12.03.2008, 20:28)Wie würdet ihr hier nun den Zugriff auf die Datei machen, um sie von der Basisseite aus dem User bereit zu stellen, sodass dieser denke, die Datei wäre auf dem Server der Basisseite?

Meine Idee:
Script auf Basisseite fragt Datei auf Fileserver an und liest diese ein und gibt sie nach einlesen simultan Stück für Stück dem User aus (fpassthru o.ä. für PHP)


Solange sich die Url für den Nutzer nicht ändert (weil ein 301 / 302 geschickt wird), ist es für den Nutzer unerheblich, was der Code unter

www . deinedomain.com / dieseseite.html

macht, ob die Daten aus einer Datenbank oder von anderen Servern liest. Was man da innerhalb von PHP machen kann, wissen die PHP-Verwender besser als ich.


QUOTE (nitrit @ Mi 12.03.2008, 20:28)Damit der Fileserver auch weiss ob der Zugriff berechtigt ist, dachte ich an eine Anfrage wie:
fileserver_handler.php?apikey=1111111111111111111111111&datei=03

Ist das Sicherheitstechnisch vertretbar? Der API-Key sollte ja eigentlich von niemandem rausgefunden werden können, insofern die Anfrage nur über das PHP-Script auf der Basisseite geht...


Das läßt sich so nicht unbedingt sagen. Das hängt von den Bedürfnissen und Notwendigkeiten ab.

Bsp.: Wenn auf die Fileserver nur der Hauptserver zugreifen darf (also Firewall oder IP-Sperre davor) und auf den Fileservern bsp. kein Http-Dienst läuft, dann sieht das 'relativ gut' aus, man könnte dann auch den Apikey weglassen.

Stehen die Server bei einem Provider, so daß auch andere Server an diesem Switch auf die Fileserver zugreifen können, könnte man womöglich von diesen her die Fileserver 'fremdnutzen'. server-daten steht zwar auch bei einem Provider, hat aber einen eigenen Switch, damit fällt diese Angriffsmöglichkeit flach.

Die kritische Frage ist also, wie die Server miteinander kommunizieren, wie stark diese Verbindung ist. Und kommunizieren die anderen Server auch mit außen (FTP, Mail) oder sind die abgeschottet? Eventuell müssen ja auch diese Dateien über eine Webanwendung aktualisiert werden.

Gemäß dem 'Prinzip der minimalen Rechte' ist zu fragen: Was kann alles gemacht werden, wenn der Hauptserver komplett unter fremder Kontrolle wäre. Das ist oft ein Problem bei Datenbank-Systemen: Da wird eine zu starke Verbindung zwischen Web- und Datenbankserver genutzt, bei einem gehackten Webserver wäre auch der Datenbankserver offen (nicht über das Betriebssystem, sondern über die Datenbank-Verbindung).
 
Zurück
Oben