Hallo O'Brien,
wie kann ich denn jetzt feststellen, ob mein Heimatverzeichnis mit drwx------ geschützt ist? Im FTP-Client sehe ich ja nur, was _in_ meinem Verzeichnis ist.
Das stellt sich etwas schwieriger dar. Für gewöhnlich sind in einer Sharedhosting-Umgebung Funktionen der Prozessausführung untersagt, andernfalls hast Du die Möglichkeit mit den Operatoren zur Programmausführung Befehle an die Shell zu schicken:
echo cd /pfad/zum/Verzeichnis/ueber/Deinem/Heimverzeichnis; /bin/ls -l
;
Es wird eine Liste aller enthaltenen Verzeichnisse, Datein und Links zurückgegeben mit den Zeiten der letzten Schreibzugriffe, Eigentümern und Rechte. Es sollte lieber auf /bin/ls zurückgegriffen werden, da manche Hoster im Verzeichnis bin des Users eigene Funktionen abgelegt haben, die zusätzliche Sicherheitsmerkmale eingebaut haben.
An statt der -Operatoren zur Programmausführung- können gleichwertig Funktionen zur Programmausführung genutzt werden. Jedoch sollte dies vom Safe Mode her nicht zulässig sein.
In sollchen Fällen bliebe nur noch ein indirekter Schluß übrig:
$d='../../'; #Verzeichnis über dem Heimverzeichnis
$dir=opendir($d);
while(($f=readdir($dir)!=FALSE)
{
if($f!='..' && $f!='.' && is_dir($f) $f!='Name des eigenen Heimverzeichnisses')
{
if(if_readable($d.$f))
echo 'r';
if(is_writable($d.$f))
echo 'w';
if(is_executable($d.$f))
echo 'x';
break;
}
}
closedir($dir);
Damit weiß man, wie andere Webs gehostet sind und kann mit der Einschränkung, daß jeder User auf dem System in selber Weise angelegt wurde, einschätzen, wie das eigene Heimverzeichnis angelegt wurde.
Wenn Dir Dein Provider rät Du möchtest alle Datein mit 0700 anlegen, so ist dies nur ein weiterer Schutz, oder er hat die Heimverzeichnisse seiner User nicht vernünftig geschützt...
Er hat mir ja gesagt, ich soll Vereichnisse mit 755 anlegen und Dateien mit 644. Mir ist einfach wichtig, dass keiner "einfach so" wie der Santy-Wurm in meine Verzeichnisse reingehen und Dateien löschen oder verändern kann.
Ich habe mich nicht eingehend mit dem Problem Santy beschäftigt, bin aber der Meinung, daß dieser einen anderen Wege genommen hat:
Es wurde ein auführbarer PHP-Code hochgeladen und mit einem anderen Script, das die Quellen einer include()-Anweisung nicht eingehend abprüfte, zur Ausführung gebracht. Das kann Dir mit allen Sicherheitsmaßnahmen von Seiten Deines Providers immernoch geschehen, wenn Du schlampig codest.
Wie kann ich also feststellen, dass der Provider seine Hausaufgaben gemacht hat?
Sogut wie gar nicht. Einfallstüren gibt es immer mehr als man selbst sehen kann ;)
(Ich hoffe ich nerve nicht zu sehr mit meiner Nachfragerei.)
Das sind sehr wichtige Fragen, die beleuchtet werden wollen. Lieber tausend Fragen, als ein Schaden.
Kannst du mir evt. noch ein gutes Tutorial empfehlen bez. Webserver-Zugriffsrechten (ich möchte keinen Server aufsetzen, nur anwenden - aber das möglichst mit Knowhow)?
Allgemein halte ich http://www.selflinux.org/ für gut. Jenach dem Distributor Deines Linux-Bündels sind immer auch die Administrationshandbücher dessen zu lesen. Für Sicherheit vom Server (mutmaßlich wirst Du diesen ja nutzen wollen) und PHP will gesorgt sein. Für PHP sollte auch PHP - Safe Mode und "Wie funktioniert der Safe_Mode" => http://selfhtml.bitworks.de/ gelesen werden.
Gruß aus Berlin!
eddi