lwulfe
Avatar lwulfe
Themenersteller
Consultant
Content Halbgott (743 Beiträge)

Sicherheit bei WordPress erhöhen

am 08.08.2010, 17:51 Uhr eröffnete lwulfe folgenden Thread
Wordpress    7210 mal gelesen    20 Antwort(en).

Hallo,
damit ihr seht, wie ich den Sonntag bei diesem Mistwetter verbringe ...
Ergänzungen und Korrekturen sind ausdrücklich erwünscht!

Verzeichnisschutz
In jedem CMS gibt es besonders schutzwürdige Verzeichnisse. Bei WordPress ist es z.B. wp-admin, bei Typo3 typo3/install. Diese Verzeichnisse schütze ich mit einem zusätzliche Passwort über .htaccess und .htpasswd.
Beispiele für das HowTo gibt es reichlich bis hin zu Generatoren.

Die wp-config.php
In der wp-config.php stehen alle notwendigen Daten im Klartext, um sich mit der WordPress-Datenbank verbinden zu können. Um zu verhindern, dass die wp-config.php direkt ausgelesen werden kann, trage ich in die .htaccess im gleichen Verzeichnis die folgenden Zeilen ein:
<files wp-config.php>
Order deny,allow
deny from all
</files>

Plugin WP Security Scan
Mit diesem empfehlenswerten Plugin kann ich kontrollieren, ob die Dateirechte in meiner Installation noch stimmen. Der Bericht stellt empfohlene Dateiberechtigungen mit den tatsächlichen gegenüber für wichtige Dateien/Verzeichnisse.
Weiter besteht die Möglichkeit, nach Sicherheitslücken zu scannen.
Falls es verpasst wurde, bei der Installation das Präfix "wp_" zu ändern, kann das mit diesem Plugin nachgeholt werden.

Der User Admin
Sobald ich meine eigene Kennung als Administrator eingerichtet habe, sollte der User "admin" gelöscht werden. Denn der ist wieder Standard.

Sicherheitsschlüssel
Die acht Sicherheitsschlüssel sollten unbedingt gesetzt werden:
'AUTH_KEY',
'SECURE_AUTH_KEY',
'LOGGED_IN_KEY',
'NONCE_KEY',
'AUTH_SALT',
'SECURE_AUTH_SALT',
'LOGGED_IN_SALT',
'NONCE_SALT'


masa8
Avatar masa8
Selbständig
Content Gott (1001 Beiträge)
am 08.08.2010, 21:49 Uhr schrieb masa8

Aktuell bei WordPress 3.0 stehen auch einige FTP-Zugangsdaten für automatische Updates mit in der wp-config.php.

define(\'FTP_BASE\', \'/WordPress-Verzeichnis/\');
define(\'FTP_CONTENT_DIR\', \'/WordPress-Verzeichnis/wp-content/\');
define(\'FTP_PLUGIN_DIR \', \'/WordPress-Verzeichnis/wp-content/plugins/\');
define(\'FTP_USER\', \'FTP-Benutzername\');
define(\'FTP_HOST\', \'localhost:21\');

Es ist richtig wichtig, diese Daten zu schützen.

Die Angaben für die Sicherheitsschlüssel sehen optimaler Weise so aus:

VR-[uW*>cU+9m#>%ie}`#ypoMSn<r0TbXB.0;e?I6@nm)|<y_2aTbX}|`JbMDIV# <br />
Gruß Matthias


Mein Blog über Wordpress, SEO, interne Verlinkung und mehr
alles-mit-links
BLACKINK Webkatalog 20-25 Backlinks "Lifetime"

lwulfe
Avatar lwulfe
Consultant
Content Halbgott (743 Beiträge)
am 08.08.2010, 22:42 Uhr schrieb lwulfe

Hallo Matthias,
das ist leider in der wp-config-sample.php nicht enthalten.
Ist mit "/WordPress-Verzeichnis" der absolute oder relative Pfad gemein?
Grüße
Lutz


masa8
Avatar masa8
Selbständig
Content Gott (1001 Beiträge)
am 09.08.2010, 10:59 Uhr schrieb masa8

Hallo Lutz,

mit dem WordPress-Verzeichnis ist eine absoluten Pfadangaben relativ zu der Basis-URI gemeint.

define(\'FTP_BASE\', \'/wp-ordner/\');

Ist WordPress im Root-Verzeichnis installiert, steht da dann nur der Backslash drinnen.

define(\'FTP_BASE\', \'/\');

Du hast recht, in der wp-config-sample.php sind die Angaben nicht drinn. Die hab ich auch nur, wenn ich WordPress vom Support installieren lasse.

Gruß Matthias


.



Mein Blog über Wordpress, SEO, interne Verlinkung und mehr
alles-mit-links
BLACKINK Webkatalog 20-25 Backlinks "Lifetime"

der_booker
Foren Moderator
selbständig
(2762 Beiträge)
am 10.08.2010, 15:40 Uhr schrieb der_booker

Zum beschriebenen Beispiel von Lutz möchte ich noch anfügen, dass eine Teilung der wp-config.php ebenfalls sehr sinnvoll sein kann. Dazu werden die Zugangsdaten in eine neue PHP übertragen und in ein geschütztes Verzeichnis gelegt. Durch den Eintrag include(\'safe_Folder/safe_config.php\'); bekommt unsere Seite zwar die Verbindung zur Datenbank, jedoch kann kein Angreifer auf die Datei zugreifen.


Heiko Jendreck
personal helpdesk
http://www.phw-jendreck.de
http://www.seo-labor.com

lwulfe
Avatar lwulfe
Consultant
Content Halbgott (743 Beiträge)
am 11.08.2010, 21:28 Uhr schrieb lwulfe

Die Teilung der wp-config.php habe ich jetzt auch vollbracht.
In das "sichere" Verzeichnis habe ich zusätzlich (eigentlich überflüssig) noch eine .htaccess mit
Order Allow,Deny
Deny from all
gelegt und die Rechte der Files auf 644 gesetzt.
Ãœbrigens ist das für die localconf.php von Typo3 auch zu empfehlen.
Jetzt kommt noch der Tipp von Matthias dran mit den FTP-Zugangsdaten.
In diesem Zusammenhang: mein geliebter FileZilla legt gespeicherte Passwörter als Klartext im Filesystem ab ...
Klingt jetzt schon fast nach einer Paranoia, aber wer Ralph´s Links mal folgt kann nicht vorsichtig genug sein.

Nachtrag zum Verzeichnisschutz:
diese Maßnahme ist leider für einen Blog an dem u. U. mehrere Autoren arbeiten, kaum zu realisieren.
Einnerseits muss der Administrator jeden Autor händisch eintragen und das Passwort mitteilen, andererseits muss sich der Autor immer zweimal anmelden.


der_booker
Foren Moderator
selbständig
(2762 Beiträge)
am 11.08.2010, 23:42 Uhr schrieb der_booker

Warum 2 mal den LOGIN? Wegen der .htaccess?
Das kannst Du mit einer config regeln und den Zugriff auf ein geschütztes Verzeichnis frei geben.


Heiko Jendreck
personal helpdesk
http://www.phw-jendreck.de
http://www.seo-labor.com

lwulfe
Avatar lwulfe
Consultant
Content Halbgott (743 Beiträge)
am 11.08.2010, 23:53 Uhr schrieb lwulfe

Ja, wegen der .htaccess. Die erzeugt ein eigenes Login-Fenster.
Wie geht denn das mit der config-Datei? Habe keine Vorstellung.


der_booker
Foren Moderator
selbständig
(2762 Beiträge)
am 12.08.2010, 02:04 Uhr schrieb der_booker

Das Ding ist mal aus der Hüfte, aber so in der Art könnte eine Verschlüsselung mit PHP aussehen:
<?php
$user = "admin";
$pass = "passwort";
$safe_folder = "config";
if($PHP_AUTH_USER != $user || $PHP_AUTH_PW != $pass) {
Header("WWW-Authenticate: Basic realm=\\"$safe_folder\\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Zugriff verweigert!";
exit;
}else{
echo"Zugriff gewährt! - Benutzer: $PHP_AUTH_USER - Passwort: $PHP_AUTH_PW";
}
?>


Statt der manuellen Userdaten, kann nun auch der aktive User verwendet werden.

Mit www.domain.tld/folder kann man sich direkten Zugriff auf das gesperrte Verzeichnis verschaffen.


Heiko Jendreck
personal helpdesk
http://www.phw-jendreck.de
http://www.seo-labor.com

masa8
Avatar masa8
Selbständig
Content Gott (1001 Beiträge)
am 12.08.2010, 19:57 Uhr schrieb masa8

der_booker schrieb:

Mit www.domain.tld/folder kann man sich direkten Zugriff auf das gesperrte Verzeichnis verschaffen.



Hallo Heiko,

macht so ein Link nicht eine neue Sicherheitslücke auf ?
Benutzername und Passwort werden unverschlüsselt übertragen, der Link landet im Verlauf und eventuell bei den Bookmarks.

Die Idee find ich sonst vom Ansatzer ganz interessant. Werde ich mal testen.

Gruß Matthias


Mein Blog über Wordpress, SEO, interne Verlinkung und mehr
alles-mit-links
BLACKINK Webkatalog 20-25 Backlinks "Lifetime"

der_booker
Foren Moderator
selbständig
(2762 Beiträge)
am 12.08.2010, 20:26 Uhr schrieb der_booker

Hallo Matthias, naja ich bin noch nicht ganz fertig mit dem Script.
Da der include jedoch serverseitig stattfindet, bekommt ein normaler Client davon nix mit. Mir geht es lediglich darum, dass eine Datei eingebunden werden kann, in der die Passwörter stehen. Wenn diese nun auch noch verschlüsselt sind und dann noch Zugriff auf eine andere DB hat, wo ebenfalls Zugangsdaten abgelegt sind, kann im Grunde fast nix mehr passieren.


Heiko Jendreck
personal helpdesk
http://www.phw-jendreck.de
http://www.seo-labor.com



« zurück zu: Wordpress

Das Seitenreport Forum hat aktuell 5273 Themen und 36107 Beiträge.
Insgesamt sind 48345 Mitglieder registriert.