Dateizugriff über direkten Link verhindern

  • Guten Tag zusammen,

    ich bräuchte einmal eine technische Hilfestellung für eine etwas ungewöhnliche Anfrage.

    Ich betreue die Webseite eines kleinen Karnevalsvereins. Da dieser ja durch Corona nicht stattfinden kann, wollten wir einen kleinen Fotowettbewerb ins Leben rufen, in welchem die besten Kostüme prämiert werden. Der Upload der Bilder soll über ein Formular erfolgen.

    Wie schaffe ich es, dass diese Bilder nach dem Upload in den Ordner wp-content.php/uploads/2022 usw. nicht über den direkten Dateilink von jedem beliebigen Nutzer aufrufbar sind?

    Über die FTP Einstellungen des Ordners scheint es zu funktionieren, indem ich alle Rechte deaktiviere.Der Dateilink wird mit einer Fehlermeldung aufgerufen.

    Habe ich vielleicht etwas vergessen? Die obige Lösung erscheint mir fast schon zu einfach.

    Vielen Dank im Voraus!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Alles was im Upload-Verzeichnis liegt wäre öffentlich erreichbar. Wenn ein Nutzer einen Link kennt, kann er diesen beliebig an andere weitergeben. Ich würde daher empfehlen die Dateien richtig zu schützen.

    Ich sehe dafür 2 Möglichkeiten:

    a) Du nutzt ein Formular-Plugin, welches nach dem Upload die Dateien in ein anderes, nicht öffentliches Verzeichnis ablegt. Bei WPForms geht das wie hier beschrieben: https://wpforms.com/developers/how…r-file-uploads/ - erfordert jedoch die Basic-Lizenz.
    b) Du nutzt ein Plugin, welches Dateien in ein geschütztes Verzeichnis schiebt. Das wäre z.B. https://de.wordpress.org/plugins/prevent-direct-access/ - in dem Fall müsstest Du jedoch ohne zusätzliche Programmierungen vorzunehmen jede Datei manuell verschieben, wenn diese nach dem Upload in der Mediathek erscheint.

  • Danke für den Hinweis mit dem Plugin, welches die Verzeichnisse schützen kann, teste ich.

    Ich nutze aktuell das Plugin "Forminator" und würde ungern auf ein anderes wechseln. Das Plugin lässt sich zumindest so einstellen, dass die hochgeladenen Bilder nicht automatisch in der Mediathek geladen werden.

    Führe derzeit einen Testlauf durch und habe die Rechte des "uploads" Ordners testweise per FTP bei "Öffentliche Berechtigungen" gelöscht. Bei aufrufen des Links zum hochgeladenen Bild, wird mir eine 403 Seite angezeigt. Es dürfte doch keiner mehr darauf zugreifen können, oder?

  • Ich wäre vorsichtig mit Änderungen an den Berechtigungen am ganzen uploads-Ordner. Nachher kann Wordpress selbst dort gar nichts mehr lesen oder schreiben. Meine Empfehlung wäre eher einen Ordner außerhalb des Web-Verzeichnisses zu verwenden (also auch außerhalb der Wordpress-Installation) oder den Webzugriff wie mit o.g. Plugin auf ein spezielles Verzeichnis zu verhindern.

  • Danke für den Hinweis :)!

    Habe mich da falsch ausgedrückt. Es ist nicht der komplette Upload-Ordner sondern nur der Ordner 2022/02 (also für diesen Monat). Also die Ordner, wo WordPress auch die Daten bei Upload in die Mediathek ablegt.

    Edit: Habe gerade das Plugin Prevent Direct Access – Protect WordPress Files installiert. Ordnerschutz gibt es nur in der kostenpflichtigen Version.

  • Davon würde ich abraten da Du damit jegliche Dateien in dem Verzeichnis für den Zugriff von außerhalb sperrst. Dir geht es ja nur um bestimmte Dateien und nicht pauschal alles was dort liegt.

  • So, wollte mich kurz zurückmelden, sollte jemand ein ähnliches Problem haben und zufällig das identische Plugin verwenden.

    Die Anfrage bzgl. einem Wechsel des Uploadordners scheint dabei häufiger gestellt worden zu sein. Dafür existieren diverse Code Snippets, die hier aufgelistet werden:
    https://wpmudev.com/forums/topic/f…pload-location/.

    Die Datei muss dann per FTP auf den Server geladen werden in das Verzeichnis wp-content/mu-plugins (erstellen, falls noch nicht vorhanden).

    Anschließend werden die Dateien in den Ordner wp-content/forminator hochgeladen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!