wp-login.php schützen, aber logout ermöglichen

  • Hallo Leute,

    ich habe in meinem Blog die wp-login.php per htaccess und htpasswd geschützt, möchte aber ein Logout ermöglichen (wp-login.php?action=logout...).

    Die Einträge in der htaccess sehen wie folgt aus: (xxx = Pfad zur htpasswd, yyy = Username)

    Apache Configuration
    <Files wp-login.php>
      AuthName "WP Login"
      AuthType Basic
      AuthUserFile xxx/htpasswd
      Require user yyy
    </Files>

    Lässt sich da irgendetwas so umbiegen, dass das Logout trotzdem ohne zusätzliche Passwortabfrage funktioniert?

    Danke schon mal im voraus,
    Arndt

    • 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

  • Okay ... ich muss das mal etwas genauer erklären:

    Es geht um die Abonnenten, deren Login erfolgt z.B. über Facebook oder andere Social-Networks im Kommentarbereich mit Hilfe des Plugins "Social Login".

    Das funktioniert ohne das Passwort der htpasswd einzugeben.
    Das Plugin bietet jedoch kein entsprechendes Logout, somit muss der Abonnent über die Funktion wp-login.php?action=logout... sich abmelden.

    Ruft er den entsprechenden Link auf, kommt die Passwortabfrage durch die htpasswd.

  • Ja, bzw. alle die Irgendwelche Beiträge schreiben o.ä. haben auch den Zugriff über die htpasswd.
    Es geht hierbei nur um die Abonnenten.

  • Wir möchten aber auch mal von Unterwegs (Urlaub oder so) was Administrieren können.

    Kann man das Logout nicht direkt aufrufen, ohne die wp-login.php ?

  • benutze doch einfach ein security plugin, wie z.B. better wp security. in verbindung mit einem ausreichend starken passwort, sollte das locker reichen.

    Also ein Plugin, um die eigene Sicherheit zu erhöhen, ist natürlich nicht ratsam. Ein Plugin kann zur Unterstützung genutzt werden, mehr aber auch nicht. Da gibt es doch sinnvollere Maßnahmen, um Wordpress zu "härten".

    @TS ne andere Möglichkeit kenne ich leider nicht.

  • Ich suche genau dasselbe. Wer weiß Rat?

    Ich habe nach dieser Anleitung den Adminbereich meines Wordpress-WooCommerce-Shop abgesichert. Der Kunden-Login oder auch das Editieren des Profils klappt damit problemlos, aber beim Logout greift er auf die wp-login.php zu...

    Code
    http://www.meinshop.de/wp-login.php?action=logout&redirect_to=http%3A%2F%2Fwww.meinshop.de%2Fmein-konto%2F&_wpnonce=123abc456defg

    ...und dadurch kommt es dann zur htaccess-Abfrage. Die kann der Kunde natürlich nicht beantworten, sondern nur authorisierte Admins.

    Dieser htaccess-Schutz ist für mich aber noch aus einem weiteren Grund wichtig. Ich möchte per Fail2Ban erfolglose Loginversuche aussperren, so wie in dieser Regel beschrieben.

    Im Kommentar zu einer Seite las ich dann das hier:

    PHP
    add_filter('logout_url','fix_logout_url');
    function fix_logout_url($link){
    //replace wp-login with login in the logout URL
    $logout_url = str_replace("wp-login", "login", $link);
    return $logout_url;
    }

    Aber wenn ich mir die wp-login.php kopiere und als logout.php benenne, könnte doch ein möglicher Angreifer diese dann wiederum missbrauchen für Login-Attacken oder?

    Hat vielleicht jemand ein passendes Snippet parat oder fällt jemandem ein Trick ein, wie man das per Rewrite oder so in der htaccess lösen könnte?

  • Dann nehme Dir mal den Firefox, gehe auf

    Extras -> Einstellungen -> Datenschutz -> einzelne Cookies löschen

    und gebe da die Domain ein, dann solltest Du eine kleine Liste mit Cookies sehen, die WP angelegt hat und wenn Du diese Cookies löscht, dann bis Du ausgeloggt. Somit sollte es genügen alle Cookies für die Domain zu löschen.

  • Schon klar, aber das kann ich wohl kaum einem Kunden als Logout-Möglichkeit anbieten. Gibt es denn keine Möglichkeit, die Cookies z.B. per functions-Snippet auf den Logout-Befehl zu legen?

  • Gibt es denn keine Möglichkeit, die Cookies z.B. per functions-Snippet auf den Logout-Befehl zu legen?


    Das meinte ich eigentlich auch damit. Es müsste eine Funktion mit einer Foreach-Schleife sein, die den $_Cookie Array durchläuft und beim Durchlauf dann den jeweilig gefundenen [COLOR=#000000][COLOR=#0000BB]$_COOKIE[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]"name"[/COLOR][COLOR=#007700]] [/COLOR][/COLOR]= 0 zuweist oder time() -1 oder so ähnlich. Müsste halt getestet werden, auch wie Du die Funktion mit einem Button oder Link aufrufst. Sind zwar nur Gedanken, sollte aber wohl klappen

Jetzt mitmachen!

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