wp-content uploads absichern

  • Guten Tag zusammen,

    ich habe angefangen mich mit Wordpress zu befassen und komme derzeit nicht weiter!
    Mein Problem ist das ich sehr gerne den Uploads Ordner aus dem wp-content Verzeichnis nach außen hin absichern möchte.
    Gibt man link/wp-content/uploads/ im Browser ein erscheint folgende Seite:
    Sorry, you are not authorized to access this area ! Goodbye !

    Das ist ja schon mal sehr erfreulich nur können Bilder oder Ähnliches direkt angesprochen werden. Diese Daten liegen im uploads Ordner in einem weiteren Verzeichnis. Das sieht dann wie folgt aus:
    link/wp-content/uploads/bilder/2022_10_15_14_05_47_asdasd_sdasdasdadsa_Passbild.png

    Das ist natürlich schlecht und sollte nicht sein.
    Was ich probiert habe ist in der .htaccess Datei den Zugriff zu verbieten. Das würde auch funktionieren NUR benutze ich eine php Datei die Zugriff auf diese Passbilder benötigt. Dieser Zugriff wäre dann nicht mehr gewährleistet. Die php Datei speichert das Passbild später in einer PDF Datei.

    Wird der Zugriff so strikt gesperrt wird kein Passbild in der PDF angezeigt :-(

    Kennt sich damit jemand aus? Ich habe LEIDER im Punkte SICHERHEIT wenig ERFAHRUNG :-(

    Grüße

    PS: Falls ich es im Falschen Forum gepostet habe bitte ich um Verschiebung in das richtige Unterforum :-)

    • 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

  • Neu Wie genau erfolgt der Zugriff auf das Passbild in PHP?

    Ich versuche es mal zu erklären.

    Wir speichern den Pfad der Bilder von jedem in einem CPT Namens Spieler. Damit haben wir bei jedem Spieler im CPT einen Eintrag stehen der Passbild heißt und wie folgt aussieht:

    Code
    /mnt/.../app/wp-content/uploads/bilder/2022_10_15_14_05_47_asdasd_sdasdasdadsa_Passbild.png

    MIt einer Funktion passen wir diesen Link an zu:

    Code
    http://link/wp-content/uploads/bilder/2022_10_15_14_05_47_asdasd_sdasdasdadsa_Passbild.png

    Hier nach geben wir diesen Link an DomPDF weiter und erstellen somit die PDF Datei :)

    Wir wussten leider nicht besser wie es geht:confused:

  • /mnt/.../app/wp-content/uploads/bilder/2022_10_15_14_05_47_asdasd_sdasdasdadsa_Passbild.png

    Diesen meinst du sicherlich als lokalen Serverpfad. Das hatten wir versucht doch es ging nicht :-(
    Hab auch etwas gesucht im Internet und finde keine Funktion / Methode in der man DomPDF umstellen könnte oder der gleichen =(

  • Also ich verstehe das mit dem lokalen Serverpfad nicht. Wenn ich ein <img> Element erstelle mit dem lokalen Serverpfad wird das Bild nicht angezeigt. Nutze ich dann wieder den http://link wird das Bild richtig angezeigt.

    Der lokale Pfad wird mir durch die PHP Funktion angezeigt

    PHP
    echo dirname(__FILE__);

    Wo ist mein Fehler? Weiß das jemand

  • mhhh... hab jetzt einiges Ausprobiert und werde nicht ganz schlau aus allem.
    Also mein domPDF ist in einem Plugin und meine Passbilder speichere ich (erst jetzt gesehen) im Theme Ordner :D

    Kann es sein das ein Plugin berechtigung benötigt um auf einen Ordner im Theme zugreifen zu dürfen? Denn wenn ich auf einer Seite den relativen Link zu einem Passbild angebe /wp-content/uploads/myTheme/passbild01.png dann erscheint schön mein Bild.

  • Habe lt. Anleitung Dompdf ein kleines Beispiel für Theme [FONT=Courier New]functions.php[/FONT] zusammengebastelt, das erzeugt ein PDF mit dem Bild drin. Es nutzt eine WordPress Action für ein einfaches Ansprechen/Ausgeben ausserhalb von sonstigem Code, das muss natürlich etwas anders in Deinen unbekannten Code integriert werden. Der Pfad in [FONT=Courier New]img src[/FONT] ist Dein lokaler Serverpfad.


    Aufruf des Beispiels im Browser:

    Code
    https://www.example.com/?testpdf=1

    6 Mal editiert, zuletzt von b3317133 (16. Oktober 2022 um 19:57)

  • Danke, das hat funktioniert. Wir haben das hier nicht benutzt:

    Code
    $dompdf = new Dompdf( [ 'chroot' => ABSPATH ] );

    Jetzt hätte ich noch eine Frage, wir nutzen eigentlich für den Konstruktor Aufruf ein Option Objekt das wie folgt aussieht:

    PHP
    $options = new Options();
        $options->set('defaultFont', 'Helvetica');
        $options->setIsRemoteEnabled(true);
        $options->set('isRemoteEnabled', true);
    
    
    $dompdf = new Dompdf($options);

    Habe nicht gefunden ob man beides dem Konstruktor übergeben kann, ebenso wenig habe ich gefunden ob man chroot in Options() setzen kann :-(

    Super schon mal das es nun so geht :-)

  • PHP
    $dompdf = new Dompdf( [ 'chroot' => ABSPATH, 'defaultFont' => 'Helvetica' ] );


    Die Einstellungen zu [FONT=Courier New]isRemoteEnabled[/FONT] werden nicht benötigt, da keine http URL (mehr) verwendet wird.

  • Die Einstellungen zu [FONT=Courier New]isRemoteEnabled[/FONT] werden nicht benötigt, da keine http URL (mehr) verwendet wird.

    Vielen Dank.

    Eine weitere Frage hätte ich noch. Wie bekommt man die Wordpress Seite abgesichert? An sich ist der Ordner uploads im wp-content nicht erreichbar. Es ging hier nur um die spezifischen Aufrufe also wp-content/uploads/theme/...passbild.png das konnte man einfach so aufrufen. Doch das soll man natürlich nicht können ;-) Im Internet gibt es jede menge Links und Artikel dazu doch wie gut sind diese? Kann jemand einen Link empfehlen?

  • Doch das soll man natürlich nicht können

    Dann leg die Dateien einfach nicht in ein Verzeichnis im Web ab - sondern außerhalb vom Web Root.

    Alles was eine eindeutige URL hat https://example.com/wp-content/uploads/theme/...passbild.png ist perse unsicher.

    Du kannst beim Apache sicherlich mit einer htaccess basteln. (wie steht in jedem Buch! über Apache)

    .htaccess

    ^- wenn die Grafik im JPG, WebP auf dem Server liegt, kannst du das Script bereits knicken.

    Du bist mit Thema jetzt weit off-topic hier geht es um WordPress und nicht um einen VHS Kurs, jetzt lerne ich mal was mit Internet

    Mit offenen Augen träumen

Jetzt mitmachen!

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