Ansicht von 3 Antworten – 1 bis 3 (von insgesamt 3)
  • Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Trotzdem frage ich mich natürlich, wie es möglich ist, daß ein random fremder Angreifer einen echten Benutzernamen kennen kann??

    Dazu brauch ich nur über die REST API die User abfragen. Probier’s selbst mal aus: https://ros…zka.de/wp-json/wp/v2/users. (Die Ausgabe wird in Firefox schöner formatiert, als in Chrome.)
    Die REST API lässt sich deaktivieren (z.B. mit Disable WP REST API). Alternativ kannst du mit ein paar Zeilen Code die Ausgabe der Benutzer abschalten:

    // Disable /users rest routes
    add_filter('rest_endpoints', function( $endpoints ) {
        if ( isset( $endpoints['/wp/v2/users'] ) ) {
            unset( $endpoints['/wp/v2/users'] );
        }
        if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
            unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
        }
        return $endpoints;
    });

    Die Begrenzung der Anmeldeversuche mit einem Plugin wie Limit Login Attempts kann sehr einfache Angriffsskripte etwas ausbremsen. Mehr Sicherheit bietet eine Zwei-Faktor-Authentifikation (z.B. mit Two Factor), wobei das bei technisch wenig bewanderten Nutzern auch auf Ablehnung stößt.

    Thread-Starter clavigo

    (@clavigo)

    Hallo Bego Mario Garde,

    vielen Dank für deine Antwort!

    Die REST API war mir bisher kein Begriff, danke für die „Nachhilfe“. Aber dann ist ja alles klar, ich werde sie deaktivieren.
    Zwei-Faktor-Auth. kenne ich natürlich und verwende sie teilweise auch bei anderen Diensten. Hier bei WP war ich bisher einfach zu faul, das einzurichten… 😉 Mache ich jetzt dann mal endlich!

    Noch ein Gedanke: Gibt es denn überhaupt einen sinnvollen Grund, warum der Zugriff auf die REST API von außen und für jedermann möglich ist? Mit den Infos dort läßt sich ja doch einiger Unfug treiben… Wäre es nicht besser, das wäre per default nur für angemeldete User zugänglich?

    BG, Tobias

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Zunächst ist WordPress so konzipiert, dass du damit Inhalte im Internet veröffentlichen und leicht zugänglich machen kannst. Dazu gehört dann eben eine Schnittstelle, mit der du z.B. per Python-Skript Beiträge und Seiten auslesen kannst. Die Information, welche Nutzernamen es gibt, sollte (ausreichend starke Passwörter vorrausgesetzt) nicht dazu reichen, die Website anzugreifen.

    So wie es Leute gibt, die vergessen, ihr Fahrtzeug abzuschließen, gibt es auch WordPress-Nutzer, die (trotz ausdrücklicher Warnung) schwache Passwörter nutzen – sowas wie password, 12345, qwertzu… Auf solche Nachlässigkeiten zielen Angriffsskripte ab, die einen abgefragten Benutzernamen mit Passwörtern aus einer Datenbank kombinieren. (Geschickter programmierte Skripte wechseln nach jedem zweiten Versuch die IP-Adresse, womit Plugins wie Limit Login Attempts ausgetrickst werden.) Um das noch weiter einzudämmen, kannst du ein Plugin nutzen, um das Anmeldeformular zu verstecken (z.B. WPS Hide Login). Das ist aber mehr zur Beruhigung des Webseiten-Inhabers gedacht, weil „Safety by Obscurity“ allgemein als unzureichend beurteilt wird.

    Ob der Benutzername nun per REST API, über der RSS-Feed oder Beitrags-Archive abgerufen wird, ist ziemlich egal, solange das Passwort hinreichend komplex ist. Wenn du dich dabei trotzdem unwohl fühlst, weil noch eine Reihe weiterer Metadaten (zu) einfach per REST API abgefragt werden können, kannst du die Schnittstelle mit einem Plugin ganz einfach schließen.

    Zwei-Faktor-Authentifikation hat den Vorteil, dass Webseiten selbst dann nicht gehackt werden können, wenn das Passwort bekannt ist (z.B. weil die Anmeldung über eine unverschlüsselte Verbindung erfolgte).

Ansicht von 3 Antworten – 1 bis 3 (von insgesamt 3)
  • Das Thema „Fremde Anmeldeversuche mit korrektem Benutzernamen?“ ist für neue Antworten geschlossen.