Sicherheitsfrage zu PHP

Kai-Behncke

Erfahrenes Mitglied
Hallo liebes Forum,

ich habe eine Frage zu folgendem Skript:
Code:
<?php

$file = fopen("http:x.x.x.x/ihab/test.txt","w") or exit("Unable to open file!");

echo fwrite($file,"Hello World. Testing!");

fclose($file);

?>

Das "w" sorgt ja dafür dass eine Datei angelegt wird, wenn diese noch nicht existiert.



....inwiefern kann ein solches Skript ein Sicherheitsrisiko sein?
Ist es damit nicht theoretisch möglich dass jemand von außen in irgendwelche Verzeichnisse irgendwelchen Code schreibt?
Im Prinzip geht es doch aber nur wenn im Server die Apache-usergruppe oder aber der "unbekannte user" Schreibzugriff hat, oder?
Oder wird das Schreibverhalten auf einen Server noch in der php.ini gesteuert?

Vielen Dank im Voraus, Kai
 
Keine Sorge so etwas funktioniert normalerweise nicht ;) (es sei denn du hättest z.B. FTP-Zugriff auf den Server) Ich kann ja auch nicht einfach Sachen auf deine Festplatte schreiben, wenn ich deine IP kenne ;)
Etwas anderes sind MySQL-Datenbanken, wenn man davon die Zugangsdaten hat oder dort keine gesetzt sind, funktioniert soetwas in MySQL.

Sicherheitsrisiken sind meistens eher, wenn Leute nicht richtig mit Daten aus externen Quellen umgehen z.B. $_COOKIE, $_POST, $_GET, $_SERVER, $_FILE etc.
dort lässt sich leicht Schadcode verstecken, der bei ungenügender Prüfung im PHP-Script ausgeführt wird... Auch Fehler-Behandlung ist wichtig d.h. es sollten möglichst keine Fehler in PHP/SQL auftreten, da man so Angreifer häufig Angriffsziele liefert (z.B. wenn irgendwo ein Buffer-Overflow-Error angezeigt wird, ist es mit ein wenig Zeit in den meisten Fällen ein Klacks den Server zu hacken)

Es zählt IMMER: ALLE Daten die von außen (nicht aus den eigenen Scripten) kommen sind gefährlich und müssen als gefährlich behandelt werden.
 
Hallo, vielen Dank erstmal für die Antworten :-)

In der Tat gibt das Skript immer eine Fehlermeldung, das Anlegen von neuen Dateien auf den Server funktioniert nicht.
Das Problem ist nun aber, ein Mitarbeiter von mir möchte eben genau so etwas machen.
Er möchte von seinem Arbeitsplatz über eben diese Funktion auf dem genannten Server Dateien anlegen.

Theoretisch, wenn ich quasi "anonymen" Personen Schreibzugriff geben würde, dann müsste das Skript ja funktionieren, oder?
Wäre aber ein immenses Sicherheitsrisiko (zumal auf dem Server auch verschiedene kleinere Homepages laufen), korrekt?
 
Damit das funktioniert könntest du FTP anstatt HTTP als Protokoll einsetzen. Oder noch "einfacher": du legst dein Script welches die Dateien verwaltet auf den selben Server wo die zu verwalteten Dateien liegen.
 
Ich würde dir zu einem kleinen PHP Upload-Script (mit Passwortschutz) raten! Einen eigenen FTP-Zugang müsstest du ja sonst auf einen bestimmten Ordner für ihn beschränken, sonst könnte er alles verändern/löschen etc. und das geht nur bei sehr wenigen Hosts ;)
Oder du schenkst ihm nen USB-Stick, die bekommst du für ein paar Euro :D
 
Zurück