Hier noch ein paar Zeilen zum Thema Schutz vor Angriffen auf WordPress.
a)
Administrationspasswörter sollten regelmäßig geändert werden.
b)
Nach der Installation von WordPress erscheint die fertig konfigurierte Datei wp-config.php.
In dieser Datei sollte in regelmäßigen Abständen das SQL-Passwort für die Datenbank geändert werden.
Der entsprechende Eintrag findet sich in der Datei wp-config.php
define( 'DB_PASSWORD', 'dgfdwerwDFEW345NN' );
c)
In der Datei wp-config.php finden sich auch die Sicherheitsschlüssel.
Auch diese sollten von Zeit zu Zeit geändert werden.
Es empfiehlt sich außerdem, diese Sicherheitsschlüssel direkt nach der Installation zu ändern.
Dies Sicherheitsschlüssel haben folgende Form.
define('AUTH_KEY', 'y_uUG~}=}e?*rFqw|;MGstU&xM4)KJ5CJc&R|eJ:8q?l7^1Pw,e$e&W6c&cL=s0s');
define('SECURE_AUTH_KEY', 'im%ddG|f2Bb$(),qzgO^!jUUje)9`}::l6nc9_*`yoIJILI<#mDBCa::o_=kxw&2');
define('LOGGED_IN_KEY', 'QgTqqS(]a<nt*&_q@B+WnnqeoD(^T,u|F*jVLn|3M<Qm8N@15De#Nw^cTufX`JRB');
define('NONCE_KEY', '|W{&YA18wwBU[DW/A|+veSuo@dh !*7++]b=%^ue>IG9d<{3p&=3Upe+(TP*JL0P');
define('AUTH_SALT', '`WF-c.508#rb;{$UfT)Q^YB-?p$/ 5C1A]7S9_,U{OWw!v$BadXHZ-QF2WrKHL(L');
define('SECURE_AUTH_SALT', 'G ?yp]F0#_c04EUk3T$1aeS)ALZo3) |bO&S%(weVEoCy6>drZ-k0C[B3y^6)+G*');
define('LOGGED_IN_SALT', 'Y@m$ :r;U_NJAO#7a+ULrbWm^#RB/fqEV)1tF)3~`Ycz&.4n+#+BEy2h}zrY|Oa[');
define('NONCE_SALT', 'A%rW4])kW X=+D)Kf--sO`a#%r<%~&Zn-:PETIP><?j{C/$nwT--=+gyZ_-lneQq');
Unter folgendem Link können sie neu generierte Sicherheitsschlüssel aufrufen:
https://api.wordpress.org/secret-key/1.1/salt/
Man kann die Sicherheitsschlüssel auch selbst ändern.
Nach einer Änderung der Sicherheitsschlüssel sind augenblicklich alle Cookies ungültig,
und sämtliche User ausgeloggt.
Wozu sind die Sicherheitsschlüssel gut, wofür braucht man die?
WordPress bedient sich nicht der internen Sessionverwaltung von PHP,
sondern validiert Benutzeranfragen mit einer eigenen Sitzungsverwaltung.
Dazu benötigt es diese Sicherheitsschlüssel.
Dazu erzeugt WordPress Cookies, und legt dort alle nötigen Informationen,
wie Zeitstempel, Ablaufdatum, Benutzer-Name/ID, URL etc. ab.
Diese Informationen werden zu einem String gemischt,
durch einen Hash-Algorithmus gejagt,
und dieser Hash wird ebenfalls in das Cookie gelegt.
Ein solches Cookie wäre allerdings ein offenes Einfallstor für Jedermann und völlig unbrauchbar,
wenn man nicht zusätzliche Features einbaut.
Denn der Hash-Algorithmus sowie String-Generierungs-Algorithmus sind ja öffentlich bekannt.
Man bräuchte noch nicht mal einen Brute Force Angriff, um ein Cookie zu fälschen,
auf einen beliebigen Rechner zu kopieren,
Zeitstempel/Ablaufdatum anzupassen,
und sich in das Dashboard einzuloggen.
Hier kommen die Sicherheitsschlüssel ins Spiel.
Es wird ein String aus Cookie-Daten, Sicherheitsschlüsseln, Auszug des User-Passwort-Hash gemischt,
und daraus ein Hash erzeugt.
Es wird also mit verborgenen Daten gesalzen.
Das funktioniert aber nur, wenn die Sicherheitsschlüssel geheim bleiben,
daher von Zeit zu Zeit ändern.
Ein Brute-Force Angriff ist jetzt nahezu aussichtslos, und hat ordentlich was zu tun, um in das Dashboard zu kommen.
Der gewonnene Hash ist also nahezu unangreifbar.
(100% unangreifbar gibt es nicht, „richtiges Raten“ knackt jede Hürde)
Wie funktioniert die Validierung?
Für die Validierung wird nach obigen Verfahren aus Sicherheitsschlüsseln und Cookie-Daten
ein Hash generiert und mit dem Cookie Hash verglichen.
Im Falle der Gleichheit wird grünes Licht gegeben.
(Vorrausgesetzt, Ablaufdatum noch gültig)
d)
Damit Angreifer vollends die Lust verlieren, sollte man zusätzlich die Login-Adresse für das Dashboard verändern.
Dazu empfiehlt sich der Einsatz eines kleinen WordPress-Plugins, das nicht viel macht,
außer die Login-Adresse zu verändern.
Das Plugin „Change wp-admin login“ ist eine gute Wahl,
andere sind nicht unbedingt schlechter.
Die folgenden Erläuterungen beziehen sich auf dieses Plugin.
Übrigens:
Plugin-Suche am besten innerhalb innerhalb des Dash-Boards, und nicht bei irgendeiner Suchmaschine.
Das schafft Sicherheit, damit man sich nicht irgendeinen Trojaner einhandelt.
Mit einer neuen Login-Adresse für das Dashboard hat ein Brute-Force Angriff ordentlich was zu tun,
denn er muß erstmal die Adresse erraten, mit der er sich überhaupt einloggen kann.
Aufpassen:
Wenn man die Login-Adresse vergißt, hat man sich selbst ausgesperrt.
In diesem Fall braucht man einen Plan B.
Für das Plugin „Change wp-admin login“ sieht der Plan B folgendermaßen aus:
Man geht via FTP in sein WordPress, und löscht das Plugin.
Das Plugin findet man im Verzeichnist wp-Content/plugins.
e)
Der letztgültige Plan B für alle Fälle, falls man WordPress zerschossen hat,
ist natürlich immer das Backup, daß man regelmäßig anlegen sollte!!!
f)
Weitere Einträge in wp-config.php:
Als nächstes folgt der Datenbank Zeichensatz und die zum Zeichensatz
zugehörige Sortierung.
Kann man zwar individuell ändern, wenn man will, ergibt aber keinen Sinn.
define( 'DB_CHARSET', 'UTF-8' );
define( 'DB_COLLATE', '' );
Das Beste ist, Finger weg, und die Standarteintragungen so lassen, wie sie sind.
Falls man für die Fehlersuche debuggen will, diese Variable auf true setzen.
define( 'WP_DEBUG', false );
Das Table-Präfix wurde bei der Installation festgelegt, um mehrere WordPress-Installationen in einer Datenbank zu ermöglichen.
$table_prefix = 'prefix_';
Nicht ändern, Finger weg.
Will man es nachträglich dennoch ändern,
muß man alle Tabellen umbenennen.
Veröffentlicht am 12.2.2023.
© 2023 Matthias Heller