Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Dateien und Verzeichnisse löschen (https://www.delphipraxis.net/90432-%5Bphp%5D-dateien-und-verzeichnisse-loeschen.html)

Matze 17. Apr 2007 13:35


[PHP] Dateien und Verzeichnisse löschen
 
Hi,

das Thema wird im Internet zwar hoch und runter diskutiert, doch mir helfen alle Tipps nicht weiter.

Mittels

Code:
mkdir($dir, 0777);
erstelle ich Verzeichnisse. Diese kann ich per FTP jedoch nicht entfernen, da unter Unix/Linux FTP als anderer Benutzer oder als andere Gruppe läuft als ein PHP-Skript. Die Lösung für die Zukunft habe ich bereits gefunden:

Code:
umask(0);
mkdir($dir, 0777);
Dann kann ich die neu erstellten Verzeichnisse/Dateien wieder normal über einen FTP-Client entfernen, doch was mach ich mit den aktuellen?

Ich habe bereits versucht mittels unlink die Dateien zu löschen und mit rmdir die Verzeichnisse. Doch weder die Dateien noch die Verzeichnisse kann ich entfernen. Wie geht das? Fehlermeldungen kommen übrigens keine beim PHP-Skript zum entfernen, nur im FTP-Client:

Zitat:

550 Delete operation failed.
Die Rechte zu setzen hat auch nichts genützt :(

Code:
chmod($dir, 0777);
Grüße,
Matze

EDatabaseError 17. Apr 2007 13:44

Re: [PHP] Dateien und Verzeichnisse löschen
 
Frag mal deinen Hoster ob der ggf. was machen kann.

Matze 17. Apr 2007 13:45

Re: [PHP] Dateien und Verzeichnisse löschen
 
Der kann das sicher löschen, aber es geht hundertprozentig auch mit PHP, denn ich kann die Verzeichnisse auch erstellen. Daher würde ich gerne wissen, wie ich das selbst lösen kann.

himitsu 17. Apr 2007 13:57

Re: [PHP] Dateien und Verzeichnisse löschen
 
Dein hoster soll das ja nicht löschen/erstellen ... du solltest ihn nur mal fragen ob er da was umstellen kann, oder ob er einen Tipp für dich hat, denn schließlich sollte er ja wissen was mit seinen Servern los ist.

Hatte damals (bei meinem alten Hoster ach mal dieses Problem) und da hat es geholfen, daß die was umgestellt haben, so daß PHP und FTP die nötigen echte hatten.


PS: du kannst ja auch irgendwie per PHP den Besitzer umstellen ... vielleicht hast du (dein PHP) dafür die nötigen Rechte.
Also den Dateien/Verzeichnissen einfach den Besitzer verpassen, welchen die vom FTP erstellten Ordner/Dateien auch haben.

Matze 17. Apr 2007 14:34

Re: [PHP] Dateien und Verzeichnisse löschen
 
Ich habe Safe-Mode kurzzeitig ausgeschalten und dann ging's. Komische Sache. ^^

himitsu 17. Apr 2007 14:51

Re: [PHP] Dateien und Verzeichnisse löschen
 
Zitat:

Zitat von Matze
Ich habe Safe-Mode kurzzeitig ausgeschalten und dann ging's. Komische Sache. ^^

Wärend des aus war, oder auch danach noch?

Matze 17. Apr 2007 15:03

Re: [PHP] Dateien und Verzeichnisse löschen
 
Nur während es aus war.

Meflin 17. Apr 2007 15:07

Re: [PHP] Dateien und Verzeichnisse löschen
 
Zitat:

Zitat von Matze
Nur während es aus war.

Dann ist es doch keine
Zitat:

Zitat von Matze
Komische Sache. ^^

! Hat der safe_mode die Funktion eben blokiert ;)


alcaeus 17. Apr 2007 15:13

Re: [PHP] Dateien und Verzeichnisse löschen
 
Es gibt nen Grund warum der safe_mode in PHP6 endlich rausgeflogen ist. Es gibt echt bessere Loesungen, Skripte abzusichern. safe_mode ist da echt nur ne Kruecke und eine Stahlkugel zugleich.

Mein Tipp: allow_url_fopen aus, register_globals aus, und safe_mode aus. Wenn du gescheid programmierst kannst du auch magic_quotes_gpc ausmachen, und dein Skript laeuft immer noch sicher - es sei denn du reisst dir durch schlampige Programmierung irgendwelche Sicherheitsluecken auf.

Greetz
alcaeus

Matze 17. Apr 2007 15:48

Re: [PHP] Dateien und Verzeichnisse löschen
 
Ach den Safe-Mode gibt's in PHP6 gar nicht mehr? Ich habe den bisher immer an gehabt, da man so viel negatives über Sicherheitslücken und ähnliches liest. Aber normalerweise müsste meine Seite so oder so den meisten Hacker-Angriffen stand halten, ich lass es aber trotzdem mal an. *g*

yankee 17. Apr 2007 15:56

Re: [PHP] Dateien und Verzeichnisse löschen
 
@alcaeus:
Wenn der Server dir gehört kannst du den natürlich so konfigurieren. Ich farge mich zwar, warum du den url-warpper ausschalten willst (warum Möglichkeiten nehmen? Wenn du es nicht brauchst, benutz es eben nicht. Ich benutze die auch nirgends im Produktiveinsatz. Aber mal eben schnell um was zu testen, können die verdammt praktisch sein), aber vorallem meine ich den Safe Mode.
Wenn du noch 10 andere Deppen hast, die sich den Server mit dir teilen, sollen die ja nicht in der Lage sein mit php an Systemdatei zu kommen. Oder auch nicht an die php-Dateien der anderen User usw. usw.

Und jetzt bin ich mal gespannt, wie du das ohne Safe Mode unterbinden willst.

alcaeus 17. Apr 2007 17:02

Re: [PHP] Dateien und Verzeichnisse löschen
 
@yankee: indem ich das nicht auf PHP-Ebene, sondern auf server-Ebene verbiete. So soll der Webserver-Benutzer keinen Zugriff auf die Passwort-Datei haben, etc.

allow_url_fopen auf aus ist ne Sicherheitsmassnahme, die man aber auch net unbedingt braucht - die Funktionalitaet die man dadurch verliert kann man sich bspw. mit fsockopen() nachbilden.
BTW, PHP6 wird den Parameter trennen: allow_url_fopen gilt nur noch fuer fopen(), fuer include, require, und die jeweiligen _once-Pendants gibts allow_url_include. include() ist uebrigens der Grund, warum ich es sicherheitshalber deaktiviere - Remote Code Execution ist dadurch unmoeglich.

Greetz
alcaeus

yankee 17. Apr 2007 17:10

Re: [PHP] Dateien und Verzeichnisse löschen
 
Zitat:

Zitat von alcaeus
@yankee: indem ich das nicht auf PHP-Ebene, sondern auf server-Ebene verbiete. So soll der Webserver-Benutzer keinen Zugriff auf die Passwort-Datei haben, etc.

In der Theorie stimmt das. Aber in der Praxis hast du bei Linux bei jedem Mist ja meistens erstmal Leserechte für alle. Und für viele Dateien ist das ja auch wichtig. In der /etc/passwd stehen ja nicht nur Passwörter sondern sind die id->name zuordnungen, die jeder braucht. Gut, dafür gibt es die shadowdatei, aber es gibt nur viel zu viele Informationen, die man über ein anzugreifendes System so herausbekommt :-(.
Zitat:

Zitat von alcaeus
include() ist uebrigens der Grund, warum ich es sicherheitshalber deaktiviere - Remote Code Execution ist dadurch unmoeglich.

eval(file_get_contents('http://...')); ?
Oder eben ein etwas komplizierterer Nachbau über sockets. Es geht jedenfalls auch ohne include.
Mal abgesehn davon: Wenn du es einmal geschafft hast den RemoteExecution-Auslöse-Code in deinen qt zu bekommen... Dann bekomtm der angreife auch so alles da rein, was er will :-(.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz