Autor | Nachricht |
---|---|
Administrator ![]() ![]() Name: Marc Geschlecht: ![]() Anmeldedatum: 28.08.2004 Beiträge: 52423 Wohnort: Lohmar | zitieren Eigentlich ist es gar nicht so schwer Dateinamen zu filtern. Die einzige Regel, die man beachten muss, sind die reservierten Zeichen in den verschiedenen Dateisystemen (NTFS, EXT, etc.) und der Betriebssysteme (Windows, Mac, Linux, etc.). Dieser Wikipedia-Artikel beschreibt das sehr gut: https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words ![]() Auch dort erwähnt ist diese Quelle, wo auf die in Windows nicht erlaubten Control Zeichen 0-31 vom ASCII Zeichensatz eingegangen wird: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx Außerdem müssen wir noch beachten, dass die meisten aktuellen Dateisysteme keine Dateinamen erlauben, die länger als 255 Bytes sind: http://serverfault.com/a/9548/44086 Und damit ergibt sich nun diese Funktion:
Fertig? Im Grunde schon, wären da nicht Sicherheitslücken, die man dadurch riskiert. Denn da man die Sprache PHP in der Regel im Web-Kontext verwendet, sollte man auch andere Zeichen wie z.B. das einfache Anführungszeichen entfernen, denn sonst könnte aus dem Dateinamen , falls oder nur dessen Parameter vergessen wurde, daraus die XSS Lücke werden. Und ja, dieser Dateiname ist in jedem Betriebssystem erlaubt. Probiere es aus.Aus dem Grund empfiehlt es sich einfach alle Zeichen zu entfernen, die zu den URI reservierten:https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters und in URL unsicheren Zeichen zählen: https://tools.ietf.org/html/rfc1738 Daraus ergibt sich dann die folgende Funktion:
Neben den besagten Zeichen wird hier noch weiteres gefiltert:
zusätzlich den Dateinamen weiter verschönern. Das habe ich bewusst in eine separate Funktion gepackt, da es nicht zwingend für das Dateisystem notwendig ist:
Wer es perfekt machen möchte, der legt die Dateinamenlänge an Hand des aktuell genutzten Pfades fest bzw. bleibt bei exakt 255 Zeichen, da er davon ausgeht, dass Windows irgendwann standardmäßig lange Pfadnamen unterstützt, was sich seit Windows 10 ja optional einstellen lässt: https://mspoweruser.com/ntfs-260-character-windows-10/ Außerdem könnte man auch das grundsätzliche Verkleinern von Dateinamen davon abhängig machen ob eine gleichlautende Datei bereits im Verzeichnis ist. Allerdings gestaltet sich das insbesondere in Linux als schwierig, wenn man mehrere Hundert Dateien im Verzeichnis hat und theoretisch ja alle in einem Verzeichnis liegen können. D.h. man müsste erst alle Dateien einlesen, den Namen verkleinern und dann abgleichen. Das ist denke ich nicht praktikabel, weshalb eine grundsätzliche Verkleinerung der Dateinamen ratsam erscheint, wenn man mal von Linux auf Windows wechselt oder Backups hier lagert bzw verarbeiten möchten.![]() ![]() 2017-02-06 08_48_55-Filename - Wikipedia.png - [Bild vergrößern] Verfasst am: 12.08.2019, 19:33 zitieren Ich nutze bei Datei-Uploads zur Prüfung von Dateinamen nun das:
Nutzung:
Vom Prinzip hat sich nicht viel geändert. Der Code wurde nur etwas umgestellt und für UTF8 der u-Modifikator hinzugefügt. 2x bearbeitet |
▲ | pn email |
Gast | zitieren Mach mit!Wenn Dir die Beiträge zum Thread "Dateinamen filtern - Sonderzeichen usw entfernen" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:Registrierte Mitglieder genießen die folgenden Vorteile: ✔ kostenlose Mitgliedschaft ✔ keine Werbung ✔ direkter Austausch mit Gleichgesinnten ✔ neue Fragen stellen oder Diskussionen starten ✔ schnelle Hilfe bei Problemen ✔ Bilder und Videos hochladen ✔ und vieles mehr... |
▲ | |
Ähnliche Beiträge | Re: √ | Letzter Beitrag | |
---|---|---|---|
Dateinamen mit Umlauten Muss aus Platzgründen unsere Wiki auf einen anderen Server umziehen. Nun sind schon etliche Dateien in die bisherige Wiki hochgeladen worden, bei denen Umlaute im Dateinamen vorkommen. Bisher gab es mit Links wie [[bild:übersicht.gif]] keine Probleme,... von kringelkopp | 8 3.593 | 18.03.2008, 15:46 mgutt | |
Suche nach Sonderzeichen (runden Klammern): So gehts Hi,
hab eine Weile gebraucht um das Herauszufinden, daher hier mein Ergebnis.
Wer in Windows Vista oder Windows 7 nach Sonderzeichen wie z.B. der runden Klammer suchen möchte muss den folgenden Syntax benutzen:
... von mgutt | 0 5.743 | 15.09.2011, 08:12 mgutt | |
Dattenrettung mit PhotoRec: Wo sind die Dateinamen? Hi,
ich habe für einen Bekannten Dateien auf einer Festplatte mit PhotoRec wiederhergestellt. Einiges konnte gerettet werden. Allerdings sind 90% der Dateinamen einfach nur durchnummeriert. Wie kommt das? Auch verstehe ich die Ordnerstruktur nicht. Er... von mgutt | 3 1.474 | 09.10.2010, 17:15 mgutt | |
Personenbezogene Daten aus Internet filtern Hallo, ich suche für ein privates Projekt einen Programmierer, der nach meinen Vorgaben eine kleine Software für mich entwickelt, die personenbezogene Daten aus dem Internet filtert.
Die Software sollte lokal installiert werden können. Ich möchte z.B.... [Allgemein]von Peter_Z | 5 645 | 26.03.2010, 12:46 ![]() mgutt | |
Marktplatz / Kleinanzeigen modellspezifisch filtern Ausgehend von einer Diskussion im Jazz Forum kam die Idee die Verkaufsanzeigen im Marktplatz je nach Fahrzeug filterbar zu machen.
Dazu wäre es nötig bei der Eingabe ein Pflichtfeld einzuführen, wo man die passende Fahrzeugkategorie auswählt.
Im... von mgutt | 14 590 | 23.01.2011, 11:45 situx | |
Welcher unterschied zwischen den K&N Filtern ??? Hey leute.
Ich habe heute mal nach nem k&n filter für meinen eg3 geguckt.
Da hab ich allerdings zwei stück gefunden.
Allerdings seh ich bei den beiden kein unterschied.
außer das der eine n euro teurer ist.
ich hoffe, ihr könnt mir helfen.... von CIVIC - Christian | 4 553 | 27.11.2006, 12:57 deacone | |
Paypal Transaktionen (gesendete Zahlungen) nach Wort filtern? Irgendwie bin ich zu blöd das zu finden oder gibt es wirklich keine Filterfunktion bei Paypal, damit ich mir alle Zahlungen ausgeben lassen kann, die an einen bestimmten Empfänger gegangen... von mgutt | 0 800 | 15.12.2014, 09:54 mgutt | |
Server überlastet wg. fehlerhafter Suche "auch in Dateinamen" Hallo,
der Server war gerade offline, weil es einen Fehler in der erweiterten Suche gibt. Die Suche nach "auch in Dateinamen" ist daher erstmal... von mgutt | 0 194 | 31.07.2013, 07:43 mgutt | |
ECU WFS entfernen Suche jemanden der mir die wegfahrsperre an ner b18 c4 ECU entfernen kann weil ich nen nen B18 aus nen Aerodeck in nen eg hängen will, kennt sich einer damit aus der das machen kann bzw krieg ich das selber hin??
Wäre cool wenn mir jemand helfen kann ... von Blue-Sonic | 0 358 | 07.11.2010, 20:21 Blue-Sonic | |
Kat entfernen.. moin moin,
habe ein kleines Problem und zwar ist mein Kat aus irgendeinem Grund kaputt.
Nun möchte ich mir einen neuen einbauen allerdings kriege ích den alten nicht gelöst.
Habe es schon mit WD40 probiert sowie mit so einem Druckluftdrehteil (mir fällt... von yolo | 6 472 | 20.11.2013, 13:53 xen_hb |