Ich arbeite an einem Online-Dateimanager als Teil einer Website, die auf einem LAMP-Stack läuft. Welche Dateierweiterungen sollte ich für hochgeladene Dateien verbieten? ".php" ist offensichtlich.Sichere Dateierweiterungen
Antwort
Ich glaube, Sie besser dran configuring Apache sein würden, so dass es nicht einmal versuchen, Skripte aus dem Upload-Verzeichnis auszuführen. Dann ist es egal, ob jemand eine .php-Datei hochlädt - wenn jemand anderes zu dieser Datei blättert, wird der Server sie wie jede .gif oder .jpg-Datei bereitstellen, anstatt zu versuchen, sie auf dem Server auszuführen - d Der Benutzer wird lediglich eine .php-Datei auf seinen Computer herunterladen.
(Beachten Sie, dass ich nichts von einem Apache-Experten bin, also weiß ich nicht genau, welche Konfigurationsänderungen Sie vornehmen müssen, um die Ausführung des Skripts zu deaktivieren - aber es sollte einfach sein, Ihre Konfigurationsdatei anzusehen, um zu sehen, was bereits auf für Ihr Hauptverzeichnis und umgekehrt für Ihr Upload-Verzeichnis.)
Sie müssen auch auf die GIFAR exploit achten.
Ich würde über den anderen Weg gehen. Nur Spezifikationsdateien, die Sie zur Veröffentlichung zulassen. Ansonsten kann es eine Vielzahl von Dateitypen geben, die Sie nicht in Betracht ziehen und die sehr gefährlich sein können. Betrachten Sie Ihre "PHP verbieten", haben Sie auch ".php5" oder ".phps" betrachtet? Es ist viel besser, ein paar Minuten zu nehmen und eine Liste der spezifischen Typen zusammenzustellen, die Sie zulassen. Dies erfordert ein wenig Front-Loading, aber am Ende wird wahrscheinlich Sie große Kopfschmerzen ersparen.
Vergessen Sie nicht .html Dateien auch.
Nicht nur müssen Sie Benutzer nicht zulassen aus Dateien ausführen, die sie hochgeladen haben, müssen Sie auch die Portion Benutzer hochgeladen HTML stark beschränken. Jemand kann Ihre Anmeldung und Authentifizierung mit etwas Javascript untergraben. Obwohl es auf Ihrem Server nicht ausgeführt wird, kann es riskant sein, wenn es von Ihrer Domäne aus bereitgestellt wird.
Sie sollten niemals eine vom Benutzer hochgeladene Datei ausführen, noch sollten Sie sie zurückgeben.
Dies kann gemindert werden, indem die Dateien von einer separaten Domäne bereitgestellt werden, sodass Sie nicht auf Ihre Cookies zugreifen können. –
Apache ermöglicht auch die dezentrale Verwaltung der Konfiguration über spezielle Dateien innerhalb des Webbaums. Die Dateien werden normalerweise als .htaccess bezeichnet, Sie können jedoch einen beliebigen Namen in der AccessFileName-Direktive verwenden. Richtlinien, die in .htaccess-Dateien platziert werden, gelten für das Verzeichnis, in dem Sie die Datei und alle Unterverzeichnisse platzieren. Die .htaccess-Dateien folgen der gleichen Syntax wie die Hauptkonfigurationsdateien. Da .htaccess-Dateien bei jeder Anforderung gelesen werden, werden Änderungen in diesen Dateien sofort wirksam.
Bitte werfen Sie einen Blick auf [Wie zu beantworten] (http://stackoverflow.com/questions/how-to-answer). –
- 1. PHP-Datei mehr Dateierweiterungen
- 2. Programm zählt Dateierweiterungen nicht
- 3. Alle VB-Skript-Dateierweiterungen
- 4. = REGEXTRACT() für Dateierweiterungen
- 5. Browserify, Babel und Dateierweiterungen
- 6. Dateierweiterungen rekursiv umbenennen
- 7. ms Büro Dateierweiterungen
- 8. Mehrere Dateierweiterungen in OpenFileDialog
- 9. Benutzerdefinierte Dateierweiterungen IIS7
- 10. Bilder für Dateierweiterungen
- 11. git grep von Dateierweiterungen
- 12. TypeScript verschiedene Dateierweiterungen erklärt?
- 13. passende mehrere Dateierweiterungen mit fnmatch()
- 14. CMake erkennt automatisch neue Dateierweiterungen
- 15. rekursiv Dateierweiterungen in Bash ändern
- 16. Sind Dateierweiterungen wichtig für Browser?
- 17. GAE heruntergeladene Dateierweiterungen von Blobstore
- 18. ASP.NET MVC Routen mit "Dateierweiterungen"
- 19. ESLint auf einer anderen Dateierweiterungen
- 20. Topendialog zeigt keine Dateierweiterungen an
- 21. Sichere Webtextformatierung
- 22. Asp.net MVC Routing nicht mit einigen Dateierweiterungen
- 23. Nginx Rewrite & Parameter Full-URL und Dateierweiterungen
- 24. Wie man Dateierweiterungen mit einem Array überprüft
- 25. rewriterule in htaccess für bestimmte Dateierweiterungen
- 26. Sind Dateierweiterungen für Azure-Blobs erforderlich?
- 27. Bekomme Dateierweiterungen für einen Eclipse-Editor
- 28. Probleme mit Visual Studio-Dateierweiterungen (.vdproj)
- 29. Zuordnen von Dateierweiterungen mit einem Programm
- 30. Wie vimgrep auf mehreren Dateierweiterungen zu verwenden
Überprüfung auf Dateierweiterung funktioniert nicht 100%, Benutzer kann PHP-Skript mit jeder Art von Erweiterung außer PHP hochladen – ajreal