htaccess Entwurf - richtig?

  • Hallo, Wordpress-Gemeinde!
    Ich arbeite derzeit an der Absicherung meines WP-Blogs und ackere mich durch viele Tutorials, Dokumentationen und Websites. Konnte schon einiges umsetzen, aber die htaccess ist noch ein rotes Tuch für mich. Meine Hauptquellen sind die Wordpress Deutschland FAQ´s und Frank Bueltge, aber manche der Beschreibungen sind mir nicht ganz klar.
    Also zuerst mal geht´s mir um die htaccess für´s root-Verzeichnis. Sie enthält derzeit bei mir folgende Dinge:

    • Stong htaccess protection (wie auf perishablepress beschrieben)
    • Zugriff auf wp-config verhindern
    • Verzeichnisaufruf verhindern
    • Externen Aufruf von php-Dateien von außen verhindern (wie hier beschrieben)
    • Fehlermeldungen unterbinden, aber in den Logdateien erhalten (selbe Quelle wie zuvor)


    Anschließend die WP-htaccess Zeilen (Permalinks).
    Folge: Fehlermeldung (500). Meine Vermutung: Es ist die Anweisung, php-Dateien von außen nicht aufrufen zu lassen (obwohl in der Quelle angegeben ist, dass das ins Hauptverzeichnis gehört).

    Frage (denn vom vielen Lesen schwirrt mir schon der Kopf und mein htaccess-Vorwissen ist praktisch null):

    1. Ist meine Vorgehensweise richtig?
    2. Welche von den oberen Anweisungen gehört nicht da hin (und wohin stattdessen)?
    3. Was würde da eurer Meinung nach dringend noch dazu gehören?


    Ich habe da lauter Puzzle-Teile, aber leider kein brauchbares Gesamt-Beispiel (gibt´s das irgendwo? Ich hab noch keins gefunden...) :cry:

    Ich bedanke mich schon mal bei allen, die die Geduld hatten, bis hierher zu lesen (und hoffe, das richtige Forum erwischt zu haben)! ;-)

    Sicher ist, dass nichts sicher ist. Selbst das nicht. (J. Ringelnatz) http://www.sigaspot.com

    • 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

  • Ein 500er beduetet häufig, das der Webserver einige/alle Änderungen an der .htaccess nicht erlaubt. Nimm doch mal nach und nach verschiedene Regeln raus und schau mal ob die Seite dann wieder läuft. Eventuell kann dir auch dein Hoster helfen, der weiß ja, was er erlaubt und was nicht. ;-)

  • Du hattest völlig recht, in meinem Fall war das die "Options" Direktive, die nicht gesetzt werden muss, weil die serverseitig schon gesetzt ist (gruml....wer lesen kann, ist klar im Vorteil). Tja, dann probier ich eben ohne die weiter... ;-)

    Kannst du mir vielleicht doch noch verraten, ob diese php-Anweisung prinizipiell Sinn macht? Verwendest du so was?

    Noch was: Ich habe wie empfohlen die Ordner, die keine index hatten, mit einer leeren index.php versehen, und ein Listing ist, wie oben erwähnt, ohnehin nicht möglich. Reicht das als Schutz oder muss da trotzdem noch eine .htaccess rein (z.B. config, admin)?
    Bin für jeden fachmännischen (oder fachfrauischen) Hinweis dankbar! :mrgreen:

    Sicher ist, dass nichts sicher ist. Selbst das nicht. (J. Ringelnatz) http://www.sigaspot.com

  • Du hattest völlig recht, in meinem Fall war das die "Options" Direktive, die nicht gesetzt werden muss, weil die serverseitig schon gesetzt ist (gruml....wer lesen kann, ist klar im Vorteil). Tja, dann probier ich eben ohne die weiter... ;-)


    Nunja, kommt wie gesagt immer drauf an, was man überschreiben darf, und wo der Serveradmin nen Riegel vorschiebt. ;-)

    Zitat

    Kannst du mir vielleicht doch noch verraten, ob diese php-Anweisung prinizipiell Sinn macht? Verwendest du so was?


    Teils teils. Vieles macht Sinn, manches nur wenn man davon ausgeht das auch der Server mal ne Macke haben kann. (Hatte ich vor längerer Zeit mal, als mein Hoster von PHP4 auf PHP5 umgestellt hat.. da war einen halben Tag lang die wp-config im Klartext abrufbar... :evil:)

    Zitat

    Noch was: Ich habe wie empfohlen die Ordner, die keine index hatten, mit einer leeren index.php versehen, und ein Listing ist, wie oben erwähnt, ohnehin nicht möglich.


    Nun in dem Fall brauchst du das ja nicht. Das ist ja grade für den Fall, dass du das Listing nicht serverseitig verhindern kannst. Aber wie gesagt, der Server kann auch mal falsch konfiguriert sein.

    Ich sag mal, letztenendes kommts immer drauf an, wie frequentiert deine Seite ist, oder ob du mit einem direkten Angriff rechnen musst. Auch die Qualität deines Hosters kann ne Rolle spielen.
    Gegen allgemeine Scriptkiddie-Angriffe ist WP IMHO ausreichend abgesichert, man muss nur regelmäßig updaten. ;-)

  • Den Hoster hab ich erst seit kurzem, also bleibt abzuwarten, wie gut er wirklich ist. Daher meine Bestrebungen, die Sicherheit meiner Site in die Hand zu nehmen, soweit dies möglich ist. Aber ich seh´ schon - da gibt´s viele Wenns und Abers.... :cry:

    Gestern hab ich meine Site mit dem WP-Scanner getestet und folgende Meldung erhalten (weiter war da nichts):
    WordPress directories accessible (wp-content)
    Wie hab ich "accessible" zu interpretieren (Listing ist ja nicht möglich - was dann) und was kann ich dagegen unternehmen?

    Sicher ist, dass nichts sicher ist. Selbst das nicht. (J. Ringelnatz) http://www.sigaspot.com

  • Ich glaube die Meldung will dir sagen, dass du keinen 403 (Forbidden) oder so sendest, wenn direkt auf wp-content/ zugegriffen wird. Da erscheint eben nur ne leere Seite. Ähnlich wenn man ./plugins oder ./themes aufruft, da kommt ein "Was suchst du denn?", aber auch mit Statuscode 200 (OK). Bei ./languages wird der 403er gesendet, wahrscheinlich weils da kein index.*-Dokument gibt.

    Header per PHP senden:
    PHP: header - Manual

    HTTP-Statuscodes und was sie bedeuten:
    SELFHTML: Webserver/CGI / Webserver / HTTP-Status-Codes

    PS: Die Aufrufe auf die Verzeichnisse in den letzten 5 Minuten, das dürfte ich gewesen sein. ;-)

  • Ja, is schon klar... ;-)
    Du surfst mit Opera, aber das heute Mittag war IE6(!!)... Wie auch immer, ich schicke jetzt NOCH eine Frage hinterher (damit du zum 6000er wieder Blumen kriegst) :mrgreen: :
    Wenn ich das richtig verstehe, ist es in dem Fall besser, die leere index dort wieder rauszunehmen, oder?
    (Und bei Link 1 verstehe ich den Zusammenhang nicht ganz, dass is aber auch neu für mich).
    Danke für den Nachschlag!

    Sicher ist, dass nichts sicher ist. Selbst das nicht. (J. Ringelnatz) http://www.sigaspot.com

  • Ja, is schon klar... ;-)
    Du surfst mit Opera


    Jupp.

    Zitat

    aber das heute Mittag war IE6(!!)


    Das war ich nicht, hab ja gesagt, letzte 5min. ;-)


    Zitat

    Wie auch immer, ich schicke jetzt NOCH eine Frage hinterher (damit du zum 6000er wieder Blumen kriegst) :mrgreen: :
    Wenn ich das richtig verstehe, ist es in dem Fall besser, die leere index dort wieder rauszunehmen, oder?


    Hehe, nur zu. :-)
    Nein, nicht unbedingt. Die index.html/php dort ist schon okay. Die wird auch ausgeliefert, wenn mal der PHP-Interpreter abschmiert (wie eben bei einer meiner Seiten letztens). Aber diese index.php sollte vielleicht trotzdem noch einen 403er senden.

    Zitat

    (Und bei Link 1 verstehe ich den Zusammenhang nicht ganz, dass is aber auch neu für mich).


    Genau hier kommt Link 1 ins Spiel. Am Anfang der index.php sendest du einfach einen HTTP-Header, etwa so:

    PHP
    <?php
    header("HTTP/1.1 403 Forbidden");
    header("Status: 403 Forbidden");
    ?>
  • Damit dir nicht soo langweilig wird :oops: hätte ich noch was zum lesen und probieren für dich: .htaccess Plugin Blocks Spam, Hackers, and Password Protects Blog
    Hab ich mir allerdings nicht komplett zu Gemüte geführt. Bin heut nur durch Zufall drauf gestoßen und hab direkt an dich gedacht :wink:

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Mir und langweilig? Nicht, seit ich Wordpress habe... :mrgreen:
    Was soll ich sagen, dieses Plugin war schon letzte Woche aktiviert, hat meinen Server getestet und folgende Rückmeldung rausgegeben:
    HTTP Digest Authentication

    Major bummer... you don't have mod_auth_digest! (included in apache since 1.1) :confused:

    Mit der Erkenntnis, dass ich mich weiterbilden muss und mir wohl noch lange nicht langweilig wird, hab ich´s wieder deaktiviert. Dieses Plugin überfordert mich. :oops: Ich tröste mich damit, dass mein Server schuld ist...wahrscheinlich...

    Sicher ist, dass nichts sicher ist. Selbst das nicht. (J. Ringelnatz) http://www.sigaspot.com

  • Hast Recht, dein Server scheint das mod_auth_digest nicht aktiv zu haben.
    Aber kann das Plugin nicht auch mit dem AuthType Basic in der .htaccess arbeiten? Sorry, hab mir das Plugin nicht weiter angeschaut. Lass sonst gut sein, wollt dich ja nur drauf hinweisen.

    Grüße
    maxe

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

Jetzt mitmachen!

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