WordPress vor Hackern schützen Teil 2

Im ersten Teil habe ich schon einige nützliche Tipps gegeben wie man WordPress mit kleinen Änderungen vor Hackern schützen kann. Sehen wir uns im zweiten Teil noch ein paar mehr hilfreiche Tricks an.

Dateibearbeitung im Dashboard ausschalten

Es kommt immer mal wieder vor, dass man am Theme oder den Plugins etwas ändern muss mittels PHP oder CSS. In WordPress bietet der Editor im Backend (unter DESIGN –> EDITOR) eine komfortable Lösung dafür an. Dies ist jedoch gleichzeitig eine Sicherheitslücke, denn auch Angreifern ist es dadurch Möglich so mittels PHP Anweisungen Änderungen vorzunehmen.

Um diese zwar komfortable aber unsichere Möglichkeit abzuschalten ist es nötig in der config.php folgenden Eintrag zu setzen:

define ( ‘DISALLOW_FILE_EDIT’, true );

Für den Administrator der Seite ist es jetzt natürlich auch mühsamer Änderungen durchzuführen aber es ist immer ein Balanceakt zwischen Bequemlichkeit und Sicherheit.

“admin”- Nutzer deaktivieren

Der Nutzername “admin” wird von WordPress als Standard gewählt und ist somit leicht zu erraten, was es potentiellen Angreifern leichter macht, da sie nur mehr das Passwort herausfinden müssen. Es sollte daher immer der Benutzername geändert werden. Ist der Benutzername erst einmal “admin” so kann er im Backend nicht mehr geändert werden. Hierfür gibt es einen kleinen Trick.

In der phpMyAdmin Oberfläche gibt es die Möglichkeit in der WordPress Datenbank, die Tabelle wp_users (oder falls Sie bereits den Tabellenpräfix geändert haben wie in Teil 1 empfohlen dann eben *_users) den User zu bearbeiten. Hier muss der “user_login” und der “user_nicename” geändert werden und danach mit OK bestätigt werden. Nach der Änderung muss man sich natürlich neu im backend einloggen 😉

Sicherheitsschlüssel in Config-Datei einfügen

In der config.php gibt es die Möglichkeit den Sicherheitsschlüssel zu ändern. Entweder man lässt sich die Keys generieren wie im Kommentar in der config.php Datei beschrieben oder man Tippt wild drauf los. Dadurch wird es Angreifern weit aus schwieriger gemacht sich als Besitzer der Seite auszugeben.

**#@+
* Sicherheitsschlüssel
*
* Ändere jeden KEY in eine beliebige, möglichst einzigartige Phrase.
* Auf der Seite {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* kannst du dir alle KEYS generieren lassen.
* Bitte trage für jeden KEY eine eigene Phrase ein. Du kannst die Schlüssel jederzeit wieder ändern,
* alle angemeldeten Benutzer müssen sich danach erneut anmelden.
*
* @seit 2.6.0
*/
define(‘AUTH_KEY’, ‘put your unique phrase here’);
define(‘SECURE_AUTH_KEY’, ‘put your unique phrase here’);
define(‘LOGGED_IN_KEY’, ‘put your unique phrase here’);
define(‘NONCE_KEY’, ‘put your unique phrase here’);
define(‘AUTH_SALT’, ‘put your unique phrase here’);
define(‘SECURE_AUTH_SALT’, ‘put your unique phrase here’);
define(‘LOGGED_IN_SALT’, ‘put your unique phrase here’);
define(‘NONCE_SALT’, ‘put your unique phrase here’);

/**#@-*/

Config-Datei absichern

Die config.php Datei ist sozusagen das Herzstück von WordPress und gehört daher besonders abgesichert. Die Datei kann im Frontend über den Browser einfach aufgerufen werden “domain/wp-config.php” und sollte im Idealfall nichts ausgeben, denn innerhalb dieser Datei werden ja nur Variablen und Konstanten definiert. Sollte der Server jedoch in irgendeiner Form kompromittiert sein dann kann es sein, dass er fälschlicherweise den Quelltext anzeigt, was fatal wäre.

Der einfachste Weg sich davor zu schützen ist über die Datei “.htaccess”. Es kann sein, dass diese Datei noch nicht existiert, dann einfach eine .htaccess Datei mit folgendem Text anlegen:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Als zweiten Schritt dann diesen Code einfügen:

<Files wp-config.php>
Order allow, deny
Deny from all
Satisfy ALL
</Files>

Nun ist diese Datei von außen nicht mehr zugänglich.

 

SSL-Verschlüsselung für den Adminbereich festlegen

Https ist dafür gut, dass dritte den Netzwerkverkehr nicht abhören können, was natürlich besonders bei Passwörter wichtig ist.  Man kann selbst festlegen, dass ein Nutzer automatisch auf eine SSl Seite weitergeleitet wird um sich einzuloggen. Einmal mehr funktioniert das mit Hilfer der config Datei.

Einfach in der congif.php Datei folgendes eintragen:

define ( ‘FORCE_SSL_ADMIN’, true );

Sobald die Datei gespeichert wurde ist ein normales anmelden ohne https nicht mehr möglich.

Im dritten Teil widmen wir uns dann den Sicherheitsvorkehrungen auf dem Webserver. Wie immer, bei Fragen einfach ein Kommentar hinterlassen…

Schreibe einen Kommentar