Löschen von Dateien mithilfe der wildcard - exec vs unlink
Arbeite ich an einem php-Skript, wo ich will, löschen Sie einige Dateien aus einem bestimmten Ordner mit wildcard (*).
Ich habe festgestellt, dass einige funktionierende Beispiele wie diese eine, wo unlink()
und glob()
- Funktion verwendet werden.
Nun, ich Frage mich, wäre es auch ok die Dateien löschen, die mit der exec
- Funktion und einen Befehl wie rm -f /path/to/folder/_prefix_*
?
Gibt es Sicherheitsrisiken bei der Nutzung dieser?
Und wenn es ok ist, wäre es besser in Bezug auf Leistung?
EDIT:
Also, von den ersten Antworten, die ich sehen kann, dass in der Tat, mit exec
könnte eine akzeptable Lösung sein.
Was ist mit performance-Probleme? Gibt es eine Möglichkeit, die exec
option könnte besser sein (schneller/weniger anspruchsvolle) über die glob/unlink
Technik?
Danke im Voraus
- rm wäre in Ordnung, Fragen der Sicherheit hängt davon ab, wer kann das Skript ausführen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil es keine chance für die vom Benutzer gelieferten Daten injiziert werden, es ist keine Frage der Sicherheit bei der Verwendung
exec
überglob/unlink
. Jedoch, mitglob/unlink
können Sie Ausnahmen definieren:Sowie
exec
ist oft deaktiviert auf shared Servern soglob/unlink
ist mehr tragbar. Wenn Sie einen dedizierten setup und nicht planen, geben Sie es auf, Sie brauchen nicht zu befürchten, dass.exec
ist schneller, aberglob/unlink
können Sie das Skript jederzeit wissen, was genau Los ist - nützlich für Konsolen-Anwendungen als web-basierte, aber Sie können auch erhalten Sie einen Fehler-Bericht für jede Datei oder eine Liste der gelöschten Dateien...Beide Optionen wären gut. Allerdings, wenn Sie keine Kontrolle über Ihre eigenen server oder shared-hosting, dem exec-Befehl konnte nicht zur Verfügung.
Um auf der sicheren Seite sein, verwenden glob und die Verknüpfung aufheben.