it-swarm.com.de

Wp-admin-Ordner sichern - Zweck? Bedeutung?

Ich versuche zu verstehen, wie man eine WordPress-Site schützt. Eine Sicherheitsaufgabe, die ich nicht verstehe, ist ... Wie wichtig ist der Schutz des Ordners "wp-admin"? Zum Beispiel würde ich das Begrenzen von Anmeldeversuchen für sehr wichtig halten.

Was ist der Zweck des Schutzes des Ordners wp-admin? Soll verhindert werden, dass ein Hacker in Ihr WordPress-Dashboard eindringt? Aber wenn Sie wp-login.php schützen, wie würde ein Hacker überhaupt in das Dashboard gelangen?

<Files wp-login.php>
order deny,allow
deny from all
allow from xxx.xxx.x.x
</Files>

Wenn Sie "Code A" verwenden, müssen Sie auch Frontend AJAX -Funktionalität und Whitelist install.css Whitelist?

"Code A" - Beschränken Sie den Zugriff auf den Ordner "wp-admin"

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xxx
</LIMIT>

.
.
Wie vergleicht sich "Code A" mit "Code B"? Würden Sie den einen oder den anderen oder beide gleichzeitig verwenden?
.

"Code B" - Sichern des wp-admin-Verzeichnisses

1   # enable basic authentication
2   AuthType Basic
3   # this text is displayed in the login dialog
4   AuthName “Restricted Area”
5   # The absolute path of the Apache htpasswd file. You should edit this
6   AuthUserFile /path/to/.htpasswd
7   # Allows any user in the .htpasswd file to access the directory
8   require valid-user




Allow front end Ajax functionality


Some WordPress plugins use Ajax functionality in WordPress.  
This means that such plugins might need access to the file admin-ajax.php  
To allow anonymous access to such file for the WordPress plugins to function,  
add the below to .htaccess  

1   <Files admin-ajax.php>
2       Order allow,deny
3       Allow from all
4       Satisfy any
5   </Files>



Update: /wp-admin/css/install.css is also sometimes needed on the frontend,  
you should whitelist that as well. Here's the necessary configuration 
to whitelist a file in a password protected location in lighttpd:


$HTTP["url"] =~ "^\/wp-admin\/.*" {
    $HTTP["url"] !~ "^\/wp-admin\/(admin-ajax\.php|css\/.*)" {
        auth.require = (
            "" => (
                "method" => "basic",
                "realm" => "Password protected area",
                "require" => "user=theuser",
            ),
        ),
    },
},
4
leko

Aber wenn Sie wp-login.php schützen, wie würde ein Hacker überhaupt in das Dashboard gelangen?

Ein Angreifer könnte versuchen, ein gültiges Authentifizierungs-Cookie zu entführen oder zu fälschen. In letzter Zeit gab es möglicherweise eine Sicherheitslücke, die es "einfacher" machte, ein solches Cookie zu fälschen: CVE-2014-0166 Es wurde mit Version 3.7.3/3.8.3 behoben

Wie vergleicht "Code A" mit "Code B"? Würden Sie den einen oder den anderen oder beide gleichzeitig verwenden?

Wenn Sie wp-admin/admin-ajax.php auf die Whitelist setzen (wie in "Code B"), kann dieses Skript weiterhin als Kontaktpunkt für einen Angreifer dienen, um seine Cookie-Fälschung zu überprüfen, und im Erfolgsfall als Einstiegspunkt, um Daten für jede nicht gesicherte Ajax-Aktion zu bearbeiten durch eine zusätzliche Nonce. Aber auch diese konnten theoretisch erraten werden.

Wenn Sie jedoch keine AJAX -Funktionalität für die Öffentlichkeit benötigen und die Möglichkeit haben, alle IPs für alle Ihre Konten auf die Positivliste zu setzen, würde das Sichern des Verzeichnisses wp-admin/ die Anzahl der möglichen Angriffsvektoren verringern, wie oben beschrieben.

Diese Methode schützt Ihre Website jedoch nicht vor Man-in-the-Middle-Angriffen oder Angriffen durch infizierte Clientcomputer, da diese die Whitelist-Prüfung bestehen würden.

Abschließend möchte ich Ihnen eine persönliche Klassifizierung zu Ihrer ersten Frage geben:

Wie wichtig ist der Schutz des Ordners "wp-admin"?

Meiner Meinung nach ist es von der ersten Anfrage an wichtiger, sichere Passwörter (möglicherweise Zwei-Faktor-Authentifizierung), sichere geheime Schlüssel (Salt in wp-config.php) und, wenn möglich, immer eine https-Verbindung zu verwenden, wenn Sie Ihr WordPress verwalten (Request https://…/wp-login.php). . Halten Sie außerdem jede Komponente auf dem neuesten Stand und entfernen Sie nicht verwendete Komponenten (Plugin/Theme) vom Server. Danach können Sie immer noch in Betracht ziehen, das Verzeichnis wp-admin zu schützen.

4
David