Schütze deine wp-config.php

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Kommentare

  
  1. Cywhale sagt:

    Habe den Artikel im Original und die verwandten Berichte auch mit grossem Interesse gelesen, zumindest die .htaccess-Variante wird hier demnächst ausprobiert werden, etwas mehr Sicherheit kann nicht schaden.

  2. Diese Variante habe ich schon länger drin, genau seit dem ich WP 2.4beta gefahren habe. Nun bin ich wieder auf 2.3.1 und noch immer funktioniert es tadellos. Der Zugriff liefert Forbidden.

  3. prinzzess sagt:

    wo in der .htaccess muss ich das denn einfügen?

  4. Iris sagt:

    Vielen Dank für diesen nützlichen Tip! Zwei Fragen eines interessierten Laien - 1. wo kommt der Codeschnipsel hin? Ich habe ihn ganz am Anfang in die htaccess kopiert, gesichert und wieder hochgeladen. Das Blog läuft noch 🙂 2. wie kann ich prüfen, ob "forbidden" funktioniert?

  5. SuMu sagt:

    danke, den .htaccess-schnipsel habe ich direkt mal eingebaut!

  6. Jared sagt:

    Aber ist die wp-config.php denn echt so gefärdet?
    Ich frage nur weil ich garnicht wusste das man eine PHP Datei direkt aufrufen und die Daten lesen kann. Eigentlich wird doch alles geparst oder? Den Eintrag mit der htaccess werde ich dann wohl auch benutzen...

    Muss ich den Codeschnipsel einfach unter die vorherigen Daten in der htaccess packen? Oder gibts da auch was zu beachten?

  7. Den Syntax einfach an den bestehenden Inhalt kopieren, eine Leerzeile für die Übersicht ist angenehm

    Aufrufen der Datei sollte zu einem forbidden führen, statt einer leeren Seite.

    @Jared: Mit Hilfe von Code (PHP o. JS) kann man den Inhalt auch von php-Dateien als txt lesen.

  8. Tobbi sagt:

    Thx Frank. Die .htaccess-Methode habe ich gleich umgesetzt. Versuchter Zugriff auf die Datei liefert bei mir ebenfalls ein "Forbidden".

  9. jochen sagt:

    Hi,
    ich habe schon eine htaccess Datei, die folgendermassen beginnt und endet
    # BEGIN WordPress

    ......
    ......

    # END WordPress

    wohin schreibe ich den von Di angegebenen code. Wie sieht das Ergebniss dann aus? Kannst Due bitte ein Beipiel geben?
    Frage deshalb so genau, weil ich des Programmierens nicht mächtig bin. Liebe Grüße
    Jochen

  10. @jochen: habe den Beitrag um ein Beispiel erweitert. Hoffe, es fällt damit leichter.

  11. Marco sagt:

    Super Anleitung, danke!
    Ich habe die Variante mit dem Auslagern der Definitionen genommen und alles funktioniert.

  12. johannes sagt:

    Das ist doch mal ein echt sinnvoller Tip. Dankeschön.

  13. Ohne mich weit aus dem Fenster lehnen zu wollen:
    Aber was soll der Aufwand denn?
    Bei der normalen wp-config.php kommt doch überhaupt kein Output beim Aufruf zustande, wie soll da was geklaut werden?
    Ich mein klar, sicher ist sicher.
    Aber doch etwas mit Kanonen auf Spatzen geschossen, oder nicht?

    Aber ich lasse mich gerne eines besseren belehren.

  14. mal ein einfaches Bsp., auf die schnelle eine php-Datei auslesen:

    <?php
    $file = '.../wp-config.php';
    if (!$file) {
    	echo("

    Error: unable to load URL file into $file. Process aborted.

    "); exit(); } $file = file_get_contents($file); highlight_string($file); ?>
  15. Kai sagt:

    Klasse Erklärung. Danke für den Hinweis, Frank.

  16. Marco sagt:

    @Frank (19. November 2007 um 12:24):
    Wenn man mit PHP eine PHP-Datei einliest, dann bekommt man als Ergebnis die HTML-Ausgabe der PHP-Datei, nicht den PHP-Code. Das habe ich gerade ausprobiert. 😉

  17. @Marco: mit dem Beispiel-Syntax bekomme ich jeden Zeile, 1:1 wie die PHP-Datei. Allerdings habe ich solche Spielereien bisher nur lokal betrieben.
    show_source z.B. liefert html, wenn der Server so eingestellt ist. Den Inhalt einer PHP-Datei kann man aber auch als txt auslesen.

  18. Conny sagt:

    Das hat meine wp-config so gut geschützt, dass ich interner Servererror 500 bekam. *lach* Erst als die htaccess wieder original war konnte ich wieder zugreifen auf meine installation. 😀

  19. Maarz sagt:

    Hallo Frank,
    darf man Fragen wieso du die 3 IPs in deiner .htaccess aussperrst?

  20. Das ist nur beispielhaft, aber in der Regel ist Contentdiebstahl der Grund.

  21. Xel sagt:

    Ähm Frank, korrigier mich, wenn ich falsch liege:

    Lokal kann ich Dateien immer auslesen, weil da nicht der Apache zwischendurch die htaccess prüft und per Remote (http://, was den Apache ja dazu bringt die htaccess zu prüfen) wird php so der Server richtig eingestellt ist IMMER geparst. Demnach hab ich mit JS (=JavaScript) keinerlei Chancen die Datei auszulesen.

    Das Problem, welches auch die "Hacker" beschrieben haben war folgendes:
    1. Jemand stolpert eher zufällig über einen Blog.
    2. Der Server gibt aus irgend einem Grund (Fehlkonfiguration, Schluckauf, Probleme PHP zu starten, ...) die Datei nicht zum Parsen an PHP weiter
    3. Der Besucher bekommt anstelle des Blogs den Quellcode der index.php
    4. Der Besucher kennt WordPress und ruft die wp-config.php auf
    5. Diese wird auch nicht geparsed sondern so auf die Reise geschickt
    6. Zugangsdaten zu MySQL hat jetzt jemand anders
    7. Der MySQL User war nicht nur für Lokalhost eingerichtet.

    Faktum Akut ist also: Wer Schreibberechtigung auf irgendeiner php-Datei hat, der kann die wp-config.php auch auslesen (und demnach auch die verschobene) wer diesen Zugriff nicht hat - der kanns nur bei Fehlkonfiguration des Servers - und dann geht noch vieeeel mehr 😉

    Bei diesem Beispiel halte ich folgende Dinge für äußerst bedenklich:
    a) Der Server gibt Quellcodes raus => Das ist eigentlich das letzte was bei nem Produktivsystem passieren darf
    b) Der MySQL-User wurde für alle Verbindungen von Außen (Hosts/IPs) eingerichtet - würde ich bei Produktivsystemen wirklich 5x drüber nachdenken, ob das nötig ist. In aller Regel reicht es den User für Localhost einzurichten - dann kann man mit dem User und dem Passwort nur noch was anfangen, wenn man selber ein Hosting Packet auf dem Server hat bzw. die URL zu phpMyAdmin oder eine SQL-Injection Lücke kennt... wobei bei letztem in aller Regel kein User/Passwort benötigt werden...

    Eigentlich schützt man sich also davor, dass bei einem Fehlverhalten des Servers relevante Daten weitergereicht werden. Das ist zwar löblich (und ich mache das auch) aber eigentlich sollte man sich lieber davor schützen, dass der Server so nen Mist macht. (Ist halt nur nicht immer möglich, is mir auch klar)

    Gruß
    Alex

  22. Hallo Alex,
    ich danke für die kurzen und treffenden Auskünfte zum Problem und Apache-Hintergründe.

    Grundsätzlich hast du recht, nur dass in den meisten Fällen der Server gehostet wird und man (oft sicher auch gut so) keinen Einfluss darauf hat. Die andere Tür sind die Fehler in der Applikation, die schnell mit einem Plugin ins System geholt sind.
    Klar, die Sicherung der wp-config.php ist nur für einen ganz kleinen Teil von möglichen Türen ein Schutz, aber für sehr wenig Aufwand schließt man wieder eine.
    * Ich habe nochmal nach dem Artikel, wie man php-Code aus einer Datei ausliest gesucht, aber ohne Erfolg. Hatte den Artikel vor langer Zeit mal gelesen, dachte eigentlich bei gulli, aber ohne Erfolg.
    Das Beispiel klappt nur lokal, aber es soll nur mal zeigen, dass wenn der Apache nicht sauber eingerichtet ist, was geht.
    LG Frank

  23. jtoth sagt:

    Hallo, ich finde diesen Artikel sehr interessant. Da ich bei einem Blog in rumänischer Sprache mitarbeite (www.cnet.ro), der über WP läuft und in dem macnhmal auch darüber berichtet wird, würde ich ihn gern ins Rumänische übersetzen. Ich weiß nur nicht so recht, ob dies den im Impressum genannten CC 2.5 entspricht. Würde mich auf einer Antwort freuen. Vielen Dank im voraus.

  24. @jtoth: aber sicher, kein Problem, wenn die Quelle angegeben ist.

  25. Martin sagt:

    Hallo Frank,
    vielen Dank für den Tip. Ich bin in php nicht ganz so tief drin, aber in Deinem Beispiel nicht ein (hoffentlich nimmt er das so) zuviel drin? Also die wp-config.php beginnt ja damit, dann kommt der include für die config.php, aber in der steht doch auch nochmal am Anfang. Beißt sich das irgendwie?
    Grüße Martin

  26. Martin sagt:

    Hatte es befürchtet. also noch ein Versuch:
    Ich bin in PHP nicht ganz so tief drin, aber in Deinem Beispiel nicht ein <?php> (hoffentlich nimmt er das so) zuviel drin? Also die wp-config.php beginnt ja damit, dann kommt der include für die config.php, aber in der steht doch auch nochmal <?php> am Anfang. Gibt das dann nicht zwei <?php> hintereinander? Unten wird ja nur eines zugemacht.

  27. Da passt was nicht, die wp-config.php hat eigentlich keine include.

  28. Martin sagt:

    Doch, in dem oben im Artikel genannten Beispiel:
    include('/home/deinname/config.php');

  29. Sorry, hatte nicht an die ausgelagerte Variante gedacht.
    Ja, muss sein und geschlossen sein.

  30. Martin sagt:

    Ich empfehle, den neuen SECRET_KEY auch in den ausgelagerten Teil zu verlegen.

Trackbacks

  1. [...] Bültge beschreibt im Artikel Schütze deine wp-config.php verschiedene Techniken, wie man sich Hacker bei WordPress vom Hals [...]

  2. [...] Schütze deine wp-config.php | bueltge.de [by:ltge.de] wordpress wp-config.php vedelem. Valamikor meg jol johet. (tags: bueltge wordpress harden) [...]

  3. [...] Es gibt noch eine zweite Möglichkeit die wp-config.php zu sichern. Diese wird hier erklärt. [...]

  4. [...] Frank hat ausführlich erklärt, wie man seine wp-config.php gegen Hacker schützt. [...]

  5. [...] für WordPress: Dies erklärt Frank Bueltge, wie man die wp-config.php besser, und überhaupt, gegen Außen [...]

  6. [...] erreichbar ist um so die Möglichkeit eines Hackerangriffs auf das eigene Blog zu erschweren. Ganzer Artikel »  Als PDF-Dokument [...]

  7. [...] einen schutz solltet ihr mindestens machen .htaccess erweitern Ronald erklärt zwei unterschiedliche Ansätze. Im ersten Schritt sichert er den Zugriff via .htacce... [...]

  8. [...] wp-config.php schützen via bueltge.de [...]

  9. [...] werde jetzt hier beim Blog mal ein bisschen mit .htacccess rumspielen. Also nicht erschrecken, wenn es mal Fehler beim Laden gibt… (diese kann es schnell geben, [...]

  10. [...] weitere Informationen dazu mit einigen Beispielen und Diskussionen findet man im zugehörigen Artikel auf meinem privaten [...]

  11. [...] sau chiar şterge întreg blogul. Pe un blog de limbă germană cu tematica WordPress am găsit un articol despre două modalităţi de protejare a fişierului respectiv (la rândul lor preluate de pe un [...]

  12. [...] Schütze Deine wp-config Wer seinen Blog im Unterverzeichnis X hat, über die weitergeleitete Subdomain beim Freehoster Y aufruft, dann noch eine anere Domain weiterletienmag-sollte dies aber nur tun, wenn er in all den Weiterleitungen noch den Durchblick hat. Sonst ist WordPress sicher - so sicher, dass es auch der Chefadmin nicht mehr findet [...]

  13. [...] wp-config schützenWie z.B. hier zu lesen ist kann man die Konfigurationsdatei in der Datenbankzugangsdaten und [...]

  14. [...] Aktuell und wichtig, man kann die wp-config.php im Standard schon eine Ebene tiefer ablegen (WP Dev Updates). Das bringt Sicherheit und war in der Vergangenheit nur über kleine Veränderungen möglich, siehe Beitrag „Schütze deine wp-config.php“. [...]

© 2016, since 2005 bueltge.de [by:ltge.de] · Theme is built by ThemeShift