Nicht-WP Web-Site einbinden und schützen

  • Hallo,
    ich nutze WordPress 6.5.3 bei STRATO.

    Auf einer Familien-Seite möchte ich einen Stammbaum zugänglich machen, der mit Family Historian 7 (https://www.family-historian.co.uk/) erstellt wurde.
    Der Zugang soll dabei nur für registrierte Benutzer möglich sein.

    Der Stammbaum liegt als Web-Struktur (HTML, JS, CSS, Medien-Dateien) in einem einzigen Verzeichnis vor (einige hundert Files).

    Da bei jeder Änderung die Web Site mit Family Historian neu generiert wird, kommt eine direkte Übernahme in WordPress nicht in Frage.
    Auch der Import des GEDCOM Files in das WP Genealogy Plugin ist nicht wirklich praktisch.

    Was ich bisher versucht habe, ist Folgendes:

    • Upload des index.html als Datei auf eine WP Seite
    • Anschließend alle anderen Dateien mit FileZilla in das gleiche ./uploads Verzeichnis hochladen
    • Dann kann ich über die WP-Seite auf die index.html zugreifen und anschließend ganz normal im Stammbaum navigieren.
      Der sieht zwar anders aus als die WP Site, aber das stört nicht.
      Einen Rück-Link zur WP Site kann ich noch einbauen.


    Das Problem ist jetzt allerdings, dass im ./uploads Verzeichnis alle Ressourcen öffentlich zugänglich sind.

    Das ./uploads Verzeichnis mittels .htaccess RewriteRule zu schützen (http://wordpress.stackexchange.com/a/37743/48165) habe ich versucht, bekomme dabei aber immer nur einen 404.

    Auch nach längerer Suche habe ich bisher leider keine andere gangbare Lösung gefunden; auch hier im Forum nicht.
    Allerdings mache ich gerade meine ersten Schritte mit WP und bin mir nicht sicher ob ich mit meiner Vorgehensweise nicht auf dem völlig falschen Dampfer bin.

    Für Rat und Unterstützung wäre ich sehr dankbar.

    • 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

  • Lassen wir mal den Gedanken weg, dass der Zugang geschützt sein soll gäbe es für die Einbindung eigentlich nur eine iframe-Lösung. Die Dateien legst Du dann in einem Verzeichnis parallel zu WordPress ab. Und diese bindest Du per iframe ein.

    Reden wir jetzt wieder über den Zugangsschutz, ist das per iframe natürlich nicht sinnvoll machbar. Sobald jemand die Adresse rausfindet (und das geht mit 2 Klicks) ist die URL auch öffentlich erreichbar. Selbst Suchmaschinenbots könnten sie finden und indizieren, wenn du das nicht explizit verhinderst.

    Die einzige Alternative die ich noch sehe wäre eine Individualprogrammierung. Mit dieser könntest Du die HTML-Dateien einbetten in eine PHP-Umgebung die wiederum einen Zugriffsschutz über WordPress-Logins bereitstellt. Die Dateien müsstest Du in einem öffentlich nicht erreichbaren Verzeichnis ablegen, könnten also in deinem Hostingbereich auch parallel zum öffentlichen Web-Verzeichnis liegen. Wenn Du das selbst nicht programmieren kannst, findest du sicherlich jemanden in der Jobbörse hierfür: https://forum.wpde.org/forums/jobboerse.33/

  • Lassen wir mal den Gedanken weg, dass der Zugang geschützt sein soll gäbe es für die Einbindung eigentlich nur eine iframe-Lösung. Die Dateien legst Du dann in einem Verzeichnis parallel zu WordPress ab. Und diese bindest Du per iframe ein.


    .htaccess Schutz geht ohne Iframe.
    Ordner anlegen html rein damit htaccess Schutz über das Kontrolpanel einrichten.

  • Du kannst z.B. alle Zugriffe auf Deinen Stammbaum Ordner über eine passende [FONT=Courier New].htaccess[/FONT] durch ein [FONT=Courier New].php[/FONT] Script leiten und mit PHP über die WordPress API abfragen ob/welcher WordPress Benutzer aktuell angemeldet ist und nur bei passender Anmeldung die Daten (ggf. gleich mit passendem WordPress Menu ergänzt) ausliefern. Die Möglichkeiten sind endlos, man braucht nur etwas Programmiererfahrung mit PHP, WordPress und Rewrite Regeln.

  • Danke für das Feedback.
    Mein Ansatz ist eigentlich auch der über .htaccess.

    Ich habe in die .htaccess folgende Zeilen vor dem WordPress-generierten Teil eingefügt:
    RewriteCond %{REQUEST_FILENAME} -s
    RewriteRule ^wp-content/uploads/(.*)$ dl-file.php?file=$1 [QSA,L]

    Als dl-file.php habe ich die Vorlage von https://gist.github.com/hakre/1552239 genommen.
    Darin wird zunächst geprüft, ob ein User eingeloggt ist und wenn nicht, wird auf den Login-Dialog umgeleitet.

    Die erzwungene Umleitung auf den Login-Dialog funktioniert auch, aber nach erfolgreicher Anmeldung gibt es einen "Not found" Fehler beim Zugriff auf die gewünschte Datei.

    Ich wollte das dann debuggen und bin nach der Anleitung https://developer.wordpress.org/advanced-admin…ebug-wordpress/ vorgegangen:
    In wp-config.php:
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors', 0 );
    define( 'SCRIPT_DEBUG', true );

    Habe sicherheitshalber auch noch ein debug.log in wp-content angelegt.

    Aber es wurden keine debug-Einträge erzeugt.
    Was mache ich da falsch?

  • Vor

    Code
    RewriteCond %{REQUEST_FILENAME} -s

    fehlt

    Apache Configuration
    RewriteEngine On

    Schau per access.log nach wohin der Request geht. Im error.log müsste auch etwas zu sehen sein falls es schief geht. Das Debugging in WordPress zu aktivieren bringt hierbei gar nichts, da die Fehler eventuell schon lange davor auftreten und WP nie erreichen.

    Wenn Du nginx statt Apache hast, geht .htaccess jedoch ohnehin nicht. Dort müsste das völlig anders konfiguriert werden.

  • Ich habe in die .htaccess folgende Zeilen vor dem WordPress-generierten Teil eingefügt:


    Poste Deinen ganzen [FONT=Courier New].htaccess[/FONT] Block. Und ergänzend falls unklar, man sollte nichts manuell direkt in den WordPress Block einfügen...

  • Ergänze die [FONT=Courier New]RewriteBase[/FONT] Zeile ähnlich wie im WordPress Block. Ändert das etwas am Verhalten? Und hast Du auch die Kommentare zu Deinem PHP Script gelesen?

    Generell solltest Du nur Deinen Stammbaum Ordner durch das PHP Script leiten, nicht auch alles andere was im WordPress uploads Ordner abgelegt wird.

  • Meine Frage ist vielleicht keinen eigenen Threat wert, deswegen schließe ich mich hier an:

    ich möchte sehr sensible Fotos auf einer geschützten Seite anlegen, und der Schutz soll so sicher wie irgendwie möglich sein. Nur handverlesene Besucher dürfen diese Fotos sehen, wenn möglich nur per Passwort. Ist das möglich? Ist der von WP beim Bearbeiten der Seite einzugebende Passwortschutz ausreichend? Das wäre dann dieser hier.

    Zur Sicherheit die betreffende Seite: diese hier

    3 Mal editiert, zuletzt von Kurt Singer (21. Oktober 2024 um 13:23)

  • @KuSin ich würde sensible Fotos nie online stellen. Jeder der das PW hat, kann Screenshots machen oder sie herunterladen! Oder das PW weitergeben.


    Mindestens würde ich das Gesicht der Person unkenntlich machen!
    Die WP eigene PW Funktion sollte reichen, davor könntest du noch einen htaccess Schutz machen.

    3 Mal editiert, zuletzt von SuMu (21. Oktober 2024 um 13:26)

  • Mit 1 hast du recht, aber die Familie in THailand möchte die Fotos sehen. Wem ich das PW gebe hat das Recht, Screenshots zu machen, niemand würde das Passwort weiter geben. Damit hat sich auch das Unkenntlich machen erübrigt, es soll ja zu sehen sein.
    Aber ich möchte vermeiden, dass jemand das Passwort umgehen kann. Wenn ich die Seite nicht sicher genug schützen kann verzichte ich auf die Veröffentlichung.

    Auf die Site selbst kommt nur derjenige, der von ihrer Existenz weiß. Also kommen nur ganz wenige überhaupt auf den Gedanken, dass hier etwas zum Knacken wäre.

Jetzt mitmachen!

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