Upload scheitert wegen falschen Rechten
Hallo,
ich habe nach einem Serverumzug für einen Kunden ein kleines Upload-Skript programmiert. Es sollen Fotos hochgeladen werden. Das Speichern der Bilder scheiterte, weil die Rechte des Zielordners ../uploads/slideshow falsch gesetzt waren.
Nachdem ich dann das Recht "Ausführen" aktiviert habe, ging es plötzlich. Ist das normal?
Ich dachte zum speichern braucht man nur Schreib-Rechte? Aktuell hat der Ordner die Rechte 777. Mit 666 schlägt der Upload reproduzierbar fehl.
Warning: move_uploaded_file(../upload/slideshow/1.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /var/www/web6/html/admin/slideshow.php on line 58
Ist das nicht ein Sicherheitsrisiko? Immerhin kann man ja ausführbare Datein als Bild tarnen.
Und noch eine Frage: Welche Rechte hat denn der anonyme Besucher der Seite? Läuft der unter "Andere"? Und ich bin der Besitzer?
Was sind "normale" Rechte für einen Webserver mit ein wenig PHP und einem Upload? Wobei ich hinzufügen muss, dass die Seite sehr unübersichtlich und schlecht programmiert wurde (nicht von mir).. Es lassen sich schlecht verzeichnisweise Rechte setzen.
Ich frage das alles ur, weil ich da keine Sicherheitslücken programmieren will.
Server läuft auf aktuellem Debian und als FTP-Client nutze ich Cyberduck (Win).
ich habe nach einem Serverumzug für einen Kunden ein kleines Upload-Skript programmiert. Es sollen Fotos hochgeladen werden. Das Speichern der Bilder scheiterte, weil die Rechte des Zielordners ../uploads/slideshow falsch gesetzt waren.
Nachdem ich dann das Recht "Ausführen" aktiviert habe, ging es plötzlich. Ist das normal?
Ich dachte zum speichern braucht man nur Schreib-Rechte? Aktuell hat der Ordner die Rechte 777. Mit 666 schlägt der Upload reproduzierbar fehl.
Warning: move_uploaded_file(../upload/slideshow/1.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /var/www/web6/html/admin/slideshow.php on line 58
Ist das nicht ein Sicherheitsrisiko? Immerhin kann man ja ausführbare Datein als Bild tarnen.
Und noch eine Frage: Welche Rechte hat denn der anonyme Besucher der Seite? Läuft der unter "Andere"? Und ich bin der Besitzer?
Was sind "normale" Rechte für einen Webserver mit ein wenig PHP und einem Upload? Wobei ich hinzufügen muss, dass die Seite sehr unübersichtlich und schlecht programmiert wurde (nicht von mir).. Es lassen sich schlecht verzeichnisweise Rechte setzen.
Ich frage das alles ur, weil ich da keine Sicherheitslücken programmieren will.
Server läuft auf aktuellem Debian und als FTP-Client nutze ich Cyberduck (Win).
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169601
Url: https://administrator.de/contentid/169601
Ausgedruckt am: 23.11.2024 um 12:11 Uhr
4 Kommentare
Neuester Kommentar
Zitat von @Bierkistenschlepper:
Nachdem ich dann das Recht "Ausführen" aktiviert habe, ging es plötzlich. Ist das normal?
Nein!Nachdem ich dann das Recht "Ausführen" aktiviert habe, ging es plötzlich. Ist das normal?
Ich dachte zum speichern braucht man nur Schreib-Rechte? Aktuell hat der Ordner die Rechte 777. Mit 666 schlägt der Upload
reproduzierbar fehl.
Warning: move_uploaded_file(../upload/slideshow/1.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in
/var/www/web6/html/admin/slideshow.php on line 58
Was für eine Gruppe hat der Webserver und Ftp Server?reproduzierbar fehl.
Warning: move_uploaded_file(../upload/slideshow/1.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in
/var/www/web6/html/admin/slideshow.php on line 58
Welche Gruppe hat der User?
FTP Rewrite und Unmask einträge?
Ist das nicht ein Sicherheitsrisiko? Immerhin kann man ja ausführbare Datein als Bild tarnen.
Ja definitivUnd noch eine Frage: Welche Rechte hat denn der anonyme Besucher der Seite? Läuft der unter "Andere"? Und ich bin
der Besitzer?
Der Zugriff über den Browser läuft unter dem User Apache bzw der Gruppe von Apache.der Besitzer?
Was sind "normale" Rechte für einen Webserver mit ein wenig PHP und einem Upload? Wobei ich hinzufügen muss,
dass die Seite sehr unübersichtlich und schlecht programmiert wurde (nicht von mir).. Es lassen sich schlecht
verzeichnisweise Rechte setzen.
Rechte normal 660 bzw 770 oder eben eine Mischung je nachdem.dass die Seite sehr unübersichtlich und schlecht programmiert wurde (nicht von mir).. Es lassen sich schlecht
verzeichnisweise Rechte setzen.
Ich frage das alles ur, weil ich da keine Sicherheitslücken programmieren will.
Ich würde mit keinem Server online gehen wo die website nur mit 777 läuft außer ich habe PHP wirklich sicher konfiguriert. Hast du das?Server läuft auf aktuellem Debian und als FTP-Client nutze ich Cyberduck (Win).
Also Debian 6.0.0, Apache, PHP 5.3+ und welchem FTP Server?Gruß Hitman
Guten Abend zusammen.
Das kann dann so aus sehen:
Also kann das PHP-Script / der Webserver / dessen Benutzer auch keine Dateien in dem entsprechendem Ordner erstellen wenn das X-Bit nicht gesetzt ist.
~Arano
Zitat Wikipedia - Unix-Dateirechte
Ausführen
(engl. execute) Der Benutzer darf die Datei als Programm ausführen bzw. in das Verzeichnis wechseln und dort Dateien oder Unterverzeichnisse erreichen. Ohne das Lesen-Recht darf der Verzeichnisinhalt jedoch nicht ausgelesen werden. Dieses Recht wird oft durch den Buchstaben „x“ für englisch execute („ausführen“) dargestellt und daher auch X-Bit genannt.
Ausführen
(engl. execute) Der Benutzer darf die Datei als Programm ausführen bzw. in das Verzeichnis wechseln und dort Dateien oder Unterverzeichnisse erreichen. Ohne das Lesen-Recht darf der Verzeichnisinhalt jedoch nicht ausgelesen werden. Dieses Recht wird oft durch den Buchstaben „x“ für englisch execute („ausführen“) dargestellt und daher auch X-Bit genannt.
Das kann dann so aus sehen:
arano@lamp:~/cpp$ ls -l test
insgesamt 576
-rwxr-x--- 1 arano arano 1331 3. Juli 19:33 pop3-cache.tmp
-rwxr-x--- 1 arano arano 2475 3. Juli 19:33 test.cpp
-rwxr-x--- 1 arano arano 140800 3. Juli 19:33 test.exe
-rwxr-x--- 1 arano arano 44269 3. Juli 19:33 test.obj
-rwxr-x--- 1 arano arano 393216 3. Juli 19:33 test.tds
arano@lamp:~/cpp$ chmod a-x test
arano@lamp:~/cpp$ ls -l test
ls: Zugriff auf test/test.obj nicht möglich: Keine Berechtigung
ls: Zugriff auf test/pop3-cache.tmp nicht möglich: Keine Berechtigung
ls: Zugriff auf test/test.cpp nicht möglich: Keine Berechtigung
ls: Zugriff auf test/test.tds nicht möglich: Keine Berechtigung
ls: Zugriff auf test/test.exe nicht möglich: Keine Berechtigung
insgesamt 0
-????????? ? ? ? ? ? pop3-cache.tmp
-????????? ? ? ? ? ? test.cpp
-????????? ? ? ? ? ? test.exe
-????????? ? ? ? ? ? test.obj
-????????? ? ? ? ? ? test.tds
arano@lamp:~/cpp$ touch ./test/arano
touch: kann „./test/arano“ nicht berühren: Keine Berechtigung
arano@lamp:~/cpp$
Also kann das PHP-Script / der Webserver / dessen Benutzer auch keine Dateien in dem entsprechendem Ordner erstellen wenn das X-Bit nicht gesetzt ist.
~Arano
> arano@lamp:~/cpp$ chmod a-x test
> arano@lamp:~/cpp$ ls -l test
> ls: Zugriff auf test/test.obj nicht möglich: Keine Berechtigung
> ls: Zugriff auf test/pop3-cache.tmp nicht möglich: Keine Berechtigung
> ls: Zugriff auf test/test.cpp nicht möglich: Keine Berechtigung
> ls: Zugriff auf test/test.tds nicht möglich: Keine Berechtigung
> ls: Zugriff auf test/test.exe nicht möglich: Keine Berechtigung
> insgesamt 0
> -????????? ? ? ? ? ? pop3-cache.tmp
> -????????? ? ? ? ? ? test.cpp
> -????????? ? ? ? ? ? test.exe
> -????????? ? ? ? ? ? test.obj
> -????????? ? ? ? ? ? test.tds
> arano@lamp:~/cpp$ touch ./test/arano
> touch: kann „./test/arano“ nicht berühren: Keine Berechtigung
> arano@lamp:~/cpp$
Das ist mir schon klar. aber für diese Anwendung reicht meiner Meinung ein 770 auch und das ist möglicherweise noch einzuschränken je nachdem wie die User Apache/PHP/User den Gruppen zugenordnet sind und je nach PHP Konfiguration.
Gruß
Hi,
ja damit hast du natürlich recht !
und dagegen will und kann ich auch gar nichts sagen
Also, das X-Bit muss schon auf dem entsprechendem Ordner gesetzt sein, deswegen ist es schon normal das es ohne nicht ging dafür aber mit.
Das wollte ich nur noch etwas erläutern. Dafür auch das Beispiel
Die Rechte 777 sollten am besten natürlich nicht gesetzt sein. Sondern, wie du es schon beschrieben hast, nur die Nötigsten für die entsprechenden Parteien.
~Arano
ja damit hast du natürlich recht !
und dagegen will und kann ich auch gar nichts sagen
Zitat von @Hitman4021:
> Zitat von @Bierkistenschlepper:
> ----
> Nachdem ich dann das Recht "Ausführen" aktiviert habe, ging es plötzlich. Ist das normal?
Nein!
Nur hiergegen hatte ich etwas > Zitat von @Bierkistenschlepper:
> ----
> Nachdem ich dann das Recht "Ausführen" aktiviert habe, ging es plötzlich. Ist das normal?
Nein!
Also, das X-Bit muss schon auf dem entsprechendem Ordner gesetzt sein, deswegen ist es schon normal das es ohne nicht ging dafür aber mit.
Das wollte ich nur noch etwas erläutern. Dafür auch das Beispiel
Die Rechte 777 sollten am besten natürlich nicht gesetzt sein. Sondern, wie du es schon beschrieben hast, nur die Nötigsten für die entsprechenden Parteien.
~Arano