Zugangsdaten-Datei oberhalb von httpdocs beim Webhosting

  • Moin moin,

    Um eine Datenbank z.B. über PHP (WordPress) aufzurufen, möchte ich (und eigentlich alle) die Zugangsdaten in einer Datei eintragen wollen. Es ist best praxis diese Datei außerhalb des „sichtbaren“ Webbereich, also oberhalb des Verzeichniss von httpdocs, anzusiedeln und dann vom Programm darauf zuzugreifen. Leider kann aber keine Datei beim Webhosting (8000) oberhalb von httpdocs gefunden werden, bzw. der Zugriff ist verwehrt.

    Wie kann ich eine Datei oder ein Verzeichnis oberhalb des httpdocs aus der Webanwendung (Index.html o.a.) aufrufen bzw. Fetchen?

    Danke für Eure Tipps :)

  • Wie kann ich eine Datei oder ein Verzeichnis oberhalb des httpdocs aus der Webanwendung (Index.html o.a.) aufrufen bzw. Fetchen?

    Du müsstest in den PHP-Einstellungen im WCP den Wert von open_basedir von DocRoot auf WebspaceRoot ändern. Dann sollten Dateien auch außerhalb des DocRoots von PHP erreichbar sein.

  • Moin moin,

    Um eine Datenbank z.B. über PHP (WordPress) aufzurufen, möchte ich (und eigentlich alle) die Zugangsdaten in einer Datei eintragen wollen. Es ist best praxis diese Datei außerhalb des „sichtbaren“ Webbereich, also oberhalb des Verzeichniss von httpdocs, anzusiedeln

    Wordpress hat die Zugangsdaten zur Datenbank in der Datei wp-config.php stehen, die im Rootfolder des Webs liegt. Es ist absolut Standard, dass die Datei da liegt. Das ist auch kein Problem, wenn der VHost und die Wordpressinstallation korrekt eingerichtet sind. Wenn der Webserver auf einen anderen "darunterliegenden" Bereich Zugriff hat, dann ist dieser Bereich genauso sicher oder unsicher wie der Standardplatz.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

    Gefällt mir 1
  • Danke für die Antworten,

    beim VHost (,,,Server Tarif) gibt es die Root Rechte, damit kanm die Datei ausserhalb des "öffentlichem Bereich" gelegt werden. Beim Webhosting gibt es keine Root Rechte im eigentlichen Sinne. Parallel zum httpdocs liegen zwar auch Verzeichnisse, diese kann ich jedoch nicht aus der Webanwendung ansprechen, es sei denn über 'open_basedir von DocRoot auf WebspaceRoot '. Dann ist aber alles offen über den Browser erreichbar, auch die Dateien, welche nur über einen FTPs erreichbar sind. Das ist auch nicht so toll.

    Wie gesagt, bei vServer konnte ich gezielt mit einigen ausgesuchten Verzeichnissen interagieren.

  • Dann ist aber alles offen über den Browser erreichbar, auch die Dateien, welche nur über einen FTPs erreichbar sind.

    Das sind sie wahrscheinlich sowieso, da exec() & Co. den open_basedir komplett umgehen. Oder stehen diese Funktionen bei Dir in disable_functions? Standardmäßig ist das afaik nicht der Fall, das kannst Du übrigens mit einer simplen Testdatei herausfinden:


    PHP: info.php
    <?php phpinfo();


    Unabhängig davon verweise ich nochmals auf meinen damaligen Beitrag: https://forum.netcup.de/webhos…und-wordpress/#post184864


    (Interessant wird es ab: Aus technischer Sicht […])


    Wie gesagt, bei vServer konnte ich gezielt mit einigen ausgesuchten Verzeichnissen interagieren.

    Das ist bei Shared Webhosting so nicht vorgesehen. Alles was über 0815-Wünsche hinausgeht, ist mit einem gemeinsam genutzten Plesk einfach nicht machbar. Da wäre ein eigener vServer die bessere Wahl, egal ob Managed oder Unmanaged. Wobei ich bei Managed vorher explizit schriftlich nachfragen würde, ob das dort wirklich möglich ist. Nur um die wp-config.php aus der Schusslinie zu bekommen, ist das allerdings etwas übertrieben. Siehe auch mein oben verlinkter Beitrag.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Dann ist aber alles offen über den Browser erreichbar, auch die Dateien, welche nur über einen FTPs erreichbar sind. Das ist auch nicht so toll.

    das stimmt so aber auch nicht. Browseraufrufe sind nach wie vor auf das DocRoot beschränkt! Du öffnest mit der Option nur die Möglichkeit mit PHP außerhalb des DocRoots auf Dateien zuzugreifen - was aber natürlich auch ein gewisses Sicherheitsrisiko birgt. Dennoch: ein Aufruf direkt per Browser außerhalb des Dokumentenstamms ist definitiv nicht ohne weiteres möglich!

  • OK.

    mit einem .htaccess file im Verzeichnis

    mit dem Inhalt

    # Simple File List Access Restricter


    RewriteEngine On


    # 1) If NOT the current host

    RewriteCond %{HTTP_HOST}@@%{HTTP_REFERER} !^([^@]*)@@https?://\1/.*


    # 2) Deny access to these types

    RewriteRule \.(gif|jpg|jpeg|png|tif|pdf|svg|wav|wmv|wma|avi|mov|mp4|php|mp3|zip?)$ - [F]




    klappt es tatsächlich; Zumindest kommt beim Aufruf der Datei über den Web-Browser immerhin eine

    Server Error

    403

    Forbidden


    Meldung.


    Ich hoffe, damit ist die Passwort-Datei gut geschützt. Auch der Dateiname ist wie ein Passwort aufgebaut.


    Danke





  • Setz im aufrufenden Browser einen Cookie MEIN_wplogin_allowed


    # BEGIN MEIN_wplogin_allowed

    <Files wp-login.php>

    RewriteCond %{HTTP_COOKIE} !^.*MEIN_wplogin_allowed.*$

    RewriteRule . /nichterlaubt.php [L]

    </Files>

    # END MEIN_wplogin_allowed


    Zugangsdaten in einer Datei:


    # BEGIN MEINE_ZugangsdatenDatei

    <Files MEINE_ZugangsdatenDatei.php>

    RewriteCond %{HTTP_COOKIE} !^.*MEINE_ZugangsdatenDatei_allowed.*$

    RewriteRule . /nichterlaubt.php [L]

    </Files>

    # END MEINE_ZugangsdatenDatei

  • Oder stehen diese Funktionen bei Dir in ... das kannst Du übrigens mit einer simplen Testdatei herausfinden:


    PHP: info.php
    <?php phpinfo();

    Aha. Die Ausgabe ist ja auch völlig selbsterklärend. Besonders für einen Laien...

    Gibst du jemandem auf eine einfache Frage auch den Tipp "Schau in das 1000 Seitige Buch, da stehts irgendwo drin..."?