Es ähnelt der Antwort von @ jptsetme, funktioniert jedoch auch, wenn die Abfragezeichenfolge lautet /?dummy&author=5und das Suchmuster für RewriteRulesehr schnell ist: ([0-9]*)In regulären Ausdrücken wird häufig ein Capture dafür angezeigt . Es ist jedoch nicht erforderlich, Speicherplatz für die Erfassung zu verschwenden, wenn Sie den erfassten Ausdruck nicht verwenden, und eine Übereinstimmung für das erste Zeichen ist ausreichend, da Sie nicht akzeptieren möchten author=1b.
Update 20.04.2017
Ich sehe mehr "kaputte" Anfragen von Leuten, die sogar zu dumm sind, um einen einfachen Scan durchzuführen. Die angeforderten URLs sehen folgendermaßen aus:
Das WPScan-Tool ist ein automatisiertes Dienstprogramm, das die benutzerfreundlichen URLs von WordPress nutzt, um Benutzernamen zu ermitteln. Es durchläuft die ersten 10 möglichen IDs für Autoren und überprüft den LocationHeader der HTTP-Antwort, um einen Benutzernamen zu finden.
Verwenden Sie http://mysite.urlzum Beispiel ...
WPScan prüft http://mysite.url/?author=1. Wenn Ihre Site hübsche Permalinks verwendet, wird eine 301-Weiterleitung mit dem LocationHeader "" zurückgegeben http://mysite.url/author/username. Wenn Ihre Site keine hübschen Permalinks verwendet, wird stattdessen der Status 200 (OK) zurückgegeben, sodass WPScan den Feed auf die Zeichenfolge "Beiträge nach Benutzername" überprüft und den Benutzernamen extrahiert.
Was du tun kannst
Nur weil jemand Ihren Benutzernamen erraten kann, bedeutet dies nicht, dass Ihre Website unsicher ist. Und es gibt wirklich keine Möglichkeit, jemanden daran zu hindern, Ihre Website so zu analysieren.
Jedoch ...
Wenn Sie sich darüber wirklich Sorgen machen, empfehle ich Ihnen, zwei Dinge zu tun:
Schalte hübsche Permalinks aus. Dadurch werden WPScan und ähnliche Tools gezwungen, den Inhalt Ihrer Website nach Benutzernamen zu durchsuchen, anstatt sich auf die URL zu verlassen.
Erzwingen Sie, dass Benutzer einen anderen Kurznamen festlegen. Wenn die URL keinen Benutzernamen enthält, suchen die Scan-Tools stattdessen im Feed / Post-Inhalt nach "Posts nach Benutzernamen". Wenn Sie keine Benutzernamen veröffentlichen, können Sie diese nicht finden.
Eine andere Alternative besteht darin, die Permalink-Änderungen Ihres Autors zu ändern. Es gibt verschiedene Möglichkeiten, dies zu tun, und wahrscheinlich finden Sie auch einige auf dieser Website .
Ich habe das nicht gründlich getestet, aber ich denke, es ist besser, die zugrunde liegende Ressource zu entfernen, als zu versuchen, auf Webserverebene Wände darum herum zu errichten. In WP-Begriffen würde dies die Verarbeitung von Autoren-bezogenen Abfragevariablen verhindern.
Sie können eine .htaccess-Umschreiberegel verwenden, um diese Offenlegung zu verhindern. Sie sollten jedoch auch Spitznamen verwenden, um die Offenlegung von Benutzernamen in syntaktisch analysierbaren Inhalten zu vermeiden, wie von EAMann beschrieben.
Die richtige Regel sollte auch die Abfragezeichenfolge aus der umgeschriebenen URL entfernen, da sonst der Benutzername weiterhin angezeigt wird. Es sollte so aussehen:
Als Randnotiz wollte ich die Aufzählung von Benutzernamen auf meiner mit WP Engine gehosteten Site verhindern, wodurch der Zugriff der Benutzer auf Nginx-Konfigurationsdateien auf niedriger Ebene eingeschränkt wird. Sie haben jedoch einen Abschnitt "Weiterleitungsregeln" in ihrer Systemsteuerung, mit dem Sie dies erreichen können. Nach einiger Zeit gelang es mir, die beste Konfiguration herauszufinden:
RedirectName:// choose a description for the rewriteDomain:// you *must* select a domain; "All Domains" will *not* work here!Source:^/$
Destination:/?
Dann müssen Sie das Advanced SettingsPanel anzeigen ...
Match args: author=([0-9]*)Rewrite type:301Permanent
Meine berufliche Meinung als Penetrationstester für eine Regierungsbehörde ... es ist IMMEREs lohnt sich, die Aufzählung von Informationen zu Ihrer Website zu erschweren. Nur wenige von Ihnen werden eine Website haben, die sich über den Google Script Kiddie Hackern erhebt. Wir sprechen von mehrschichtiger Sicherheit. Mit jeder Schicht erhöhen Sie die Zeit und Komplexität eines Penetrationsversuchs. Jede Ebene erhöht auch die Fähigkeiten, die der Hacker benötigt. In WP sind einige wirklich gute Anwendungsfirewalls verfügbar. Suchen Sie nach IP-Adressen, die wiederholte Anmeldeversuche von Benutzern oder 404 blockieren können. Ihre Firewall blockiert automatisch IP-Adressen, die Ihre Website nach nicht vorhandenen Seiten durchsuchen, oder versucht, sich wiederholt bei Ihrer Website anzumelden. Zu einer guten Funktion gehören auch die Funktionen zum Blockieren von XSS- und SQL-Injections. Erwägen Sie die Verwendung von All-in-One-WP-Sicherheit von Tipps und Tricks HQ, Peter, Ruhul, Ivy.
Anstelle der .htaccessRoute können Sie auch den folgenden Code zum Thema Ihres Kindes hinzufügen functions.php:
# Redirect author page to homepage
add_action('template_redirect','wpse_46469_author_page');function wpse_46469_author_page(){# If the author archive page is being accessed, redirect to homepageif( is_author()){
wp_safe_redirect( get_home_url(),301);exit;}}
Darüber hinaus können Sie die standardmäßigen Autorenlinks, die zum Benutzernamen jeder Seite hinzugefügt werden, auf eine andere Art und Weise ändern (z. B. auf die Startseite), indem Sie Folgendes ausführen:
# Replace author URL with the homepage
add_filter('author_link','wpse_46469_author_link');function wpse_46469_author_link(){# Return homepage URLreturn home_url();}
Ich weiß, dass dies ein alter Beitrag ist, aber für zukünftige Referenzen möchte ich auch meine Lösung hinzufügen. Dies ist nur ein Ausschnitt functions.phpaus Ihrem Thema. Es wird alles an Ort und Stelle belassen und funktionieren, sogar die Archive des Autors, aber es werden die schlechten Aufzählungsanfragen ausgeblendet.
Wenn es gefunden wird, wird die Autorenvariable aus den Abfragevariablen entfernt, damit es nicht abgefragt wird.
Wenn Sie Permalinks verwenden, bleiben die Archive des Autors erhalten. Auch wenn die URL ungefähr so lautet: Hier /dummy?author=1wird nur die Seite für angezeigt /dummy.
Erste Zeile erkennt nur Homepage. Ich erkläre warum. Diese Funktion "Benutzeraufzählung" funktioniert nur auf der Homepage, sodass nicht alle URLs neu geschrieben werden müssen.
Als nächstes suchen wir nach einer author=Abfragezeichenfolge. Es ist offensichtlich.
Schließlich zeigen wir nur die Originalseite ohne Blöcke, Weiterleitungen (301, 302) oder Sperren (403). Sollte es sich nicht wie eine Seite mit einem anderen nutzlosen Parameter verhalten?
Antworten:
Eine einfache Lösung, die ich in einem verwende
.htaccess
:Es ähnelt der Antwort von @ jptsetme, funktioniert jedoch auch, wenn die Abfragezeichenfolge lautet
/?dummy&author=5
und das Suchmuster fürRewriteRule
sehr schnell ist:([0-9]*)
In regulären Ausdrücken wird häufig ein Capture dafür angezeigt . Es ist jedoch nicht erforderlich, Speicherplatz für die Erfassung zu verschwenden, wenn Sie den erfassten Ausdruck nicht verwenden, und eine Übereinstimmung für das erste Zeichen ist ausreichend, da Sie nicht akzeptieren möchtenauthor=1b
.Update 20.04.2017
Ich sehe mehr "kaputte" Anfragen von Leuten, die sogar zu dumm sind, um einen einfachen Scan durchzuführen. Die angeforderten URLs sehen folgendermaßen aus:
Sie können die obige Regel also erweitern auf:
quelle
Das kannst du nicht.
Das WPScan-Tool ist ein automatisiertes Dienstprogramm, das die benutzerfreundlichen URLs von WordPress nutzt, um Benutzernamen zu ermitteln. Es durchläuft die ersten 10 möglichen IDs für Autoren und überprüft den
Location
Header der HTTP-Antwort, um einen Benutzernamen zu finden.Verwenden Sie
http://mysite.url
zum Beispiel ...WPScan prüft
http://mysite.url/?author=1
. Wenn Ihre Site hübsche Permalinks verwendet, wird eine 301-Weiterleitung mit demLocation
Header "" zurückgegebenhttp://mysite.url/author/username
. Wenn Ihre Site keine hübschen Permalinks verwendet, wird stattdessen der Status 200 (OK) zurückgegeben, sodass WPScan den Feed auf die Zeichenfolge "Beiträge nach Benutzername" überprüft und den Benutzernamen extrahiert.Was du tun kannst
Nur weil jemand Ihren Benutzernamen erraten kann, bedeutet dies nicht, dass Ihre Website unsicher ist. Und es gibt wirklich keine Möglichkeit, jemanden daran zu hindern, Ihre Website so zu analysieren.
Jedoch ...
Wenn Sie sich darüber wirklich Sorgen machen, empfehle ich Ihnen, zwei Dinge zu tun:
Eine andere Alternative besteht darin, die Permalink-Änderungen Ihres Autors zu ändern. Es gibt verschiedene Möglichkeiten, dies zu tun, und wahrscheinlich finden Sie auch einige auf dieser Website .
quelle
Ich habe das nicht gründlich getestet, aber ich denke, es ist besser, die zugrunde liegende Ressource zu entfernen, als zu versuchen, auf Webserverebene Wände darum herum zu errichten. In WP-Begriffen würde dies die Verarbeitung von Autoren-bezogenen Abfragevariablen verhindern.
PS: Beachten Sie, dass dies Autorenarchive gänzlich tötet , was möglicherweise der Paranoia-Stufe entspricht oder nicht :)
quelle
Sie können eine .htaccess-Umschreiberegel verwenden, um diese Offenlegung zu verhindern. Sie sollten jedoch auch Spitznamen verwenden, um die Offenlegung von Benutzernamen in syntaktisch analysierbaren Inhalten zu vermeiden, wie von EAMann beschrieben.
Der folgende Blog beschreibt die Vorgehensweise, enthält jedoch einen Tippfehler in der Umschreiberegel: http://www.question-defense.com/2012/03/20/block-wordpress-user-enumeration-secure-wordpress-against-hacking
Die richtige Regel sollte auch die Abfragezeichenfolge aus der umgeschriebenen URL entfernen, da sonst der Benutzername weiterhin angezeigt wird. Es sollte so aussehen:
Gut für uns.
quelle
Ich wollte hinzufügen, dass Sie dies auch auf Nginx tun können. Prüfen Sie:
» Blockieren der WordPress-Benutzeraufzählung unter nginx - www.edwidget.name
Als Randnotiz wollte ich die Aufzählung von Benutzernamen auf meiner mit WP Engine gehosteten Site verhindern, wodurch der Zugriff der Benutzer auf Nginx-Konfigurationsdateien auf niedriger Ebene eingeschränkt wird. Sie haben jedoch einen Abschnitt "Weiterleitungsregeln" in ihrer Systemsteuerung, mit dem Sie dies erreichen können. Nach einiger Zeit gelang es mir, die beste Konfiguration herauszufinden:
Dann müssen Sie das
Advanced Settings
Panel anzeigen ...Et voila, deine Benutzernamen sind sicher!
quelle
Ich habe die Benutzeraufzählung von WPScan vollständig blockiert, indem ich in htaccess Folgendes hinzugefügt habe
Meine berufliche Meinung als Penetrationstester für eine Regierungsbehörde ... es ist IMMEREs lohnt sich, die Aufzählung von Informationen zu Ihrer Website zu erschweren. Nur wenige von Ihnen werden eine Website haben, die sich über den Google Script Kiddie Hackern erhebt. Wir sprechen von mehrschichtiger Sicherheit. Mit jeder Schicht erhöhen Sie die Zeit und Komplexität eines Penetrationsversuchs. Jede Ebene erhöht auch die Fähigkeiten, die der Hacker benötigt. In WP sind einige wirklich gute Anwendungsfirewalls verfügbar. Suchen Sie nach IP-Adressen, die wiederholte Anmeldeversuche von Benutzern oder 404 blockieren können. Ihre Firewall blockiert automatisch IP-Adressen, die Ihre Website nach nicht vorhandenen Seiten durchsuchen, oder versucht, sich wiederholt bei Ihrer Website anzumelden. Zu einer guten Funktion gehören auch die Funktionen zum Blockieren von XSS- und SQL-Injections. Erwägen Sie die Verwendung von All-in-One-WP-Sicherheit von Tipps und Tricks HQ, Peter, Ruhul, Ivy.
quelle
Anstelle der
.htaccess
Route können Sie auch den folgenden Code zum Thema Ihres Kindes hinzufügenfunctions.php
:Darüber hinaus können Sie die standardmäßigen Autorenlinks, die zum Benutzernamen jeder Seite hinzugefügt werden, auf eine andere Art und Weise ändern (z. B. auf die Startseite), indem Sie Folgendes ausführen:
quelle
Ich weiß, dass dies ein alter Beitrag ist, aber für zukünftige Referenzen möchte ich auch meine Lösung hinzufügen. Dies ist nur ein Ausschnitt
functions.php
aus Ihrem Thema. Es wird alles an Ort und Stelle belassen und funktionieren, sogar die Archive des Autors, aber es werden die schlechten Aufzählungsanfragen ausgeblendet.Was es macht:
author=1
Wenn Sie Permalinks verwenden, bleiben die Archive des Autors erhalten. Auch wenn die URL ungefähr so lautet: Hier
/dummy?author=1
wird nur die Seite für angezeigt/dummy
.Dank der Antwort von Rarst auf diese Frage und https://perishablepress.com/stop-user-enumeration-wordpress/
quelle
Ich möchte meine eigene Vision posten:
Erste Zeile erkennt nur Homepage. Ich erkläre warum. Diese Funktion "Benutzeraufzählung" funktioniert nur auf der Homepage, sodass nicht alle URLs neu geschrieben werden müssen.
Als nächstes suchen wir nach einer
author=
Abfragezeichenfolge. Es ist offensichtlich.Schließlich zeigen wir nur die Originalseite ohne Blöcke, Weiterleitungen (301, 302) oder Sperren (403). Sollte es sich nicht wie eine Seite mit einem anderen nutzlosen Parameter verhalten?
quelle