Ich hatte das Vergnügen für die c’t extra 01/2010 – Webdesign einen WordPress-Artikel zu schreiben. Die Überschrift des Artikels ist “Gut gepresst: WordPress absichern und anpassen” (Linkliste zum Artikel), der Artikel beginnt auf der Seite 100 und ist 3,5 Seiten lang.
Das Thema des Artikel ist nicht nur die Sicherheit, sondern auch wie die ersten Schritte bezüglich der Erstellung eines eigenen Themes aussehen könnten. So weit so gut.
Karsten Busch hat mich in seinem Blog-Artikel darauf hingewiesen, dass an einer Stelle im Artikel eine zusätzliche Info fehlt bzw. hilfreich gewesen wäre.
Worum geht es genau? Im abgegeben Manuskript habe ich unter anderem empfohlen, dass man während einer Installation den Tabellen-Präfix (wp_
) in etwas individuelles ändern sollte, aber das man bei einer bestehenden Installation davon die Finger lassen sollte bzw. das dies nur sehr erfahrene Anwender in Angriff nehmen sollten, da ich selber in zwei Test-Fällen arg zu kämpfen hatte.
Wie das so ist, wurden von den Seiten des Verlags einige Änderungen im Artikel eingefügt. Unter anderem steht jetzt im Artikel, dass man auch bei einer bestehenden Installation den Tabellen-Präfix ändern könnte und das es dafür reicht, wenn man in z. B. phpMyAdmin, die Präfixe der einzelnen Tabellen ändert. Das reicht aber nicht ganz, da der Admin dann ausgesperrt wird: “Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen”.
Mir wurde das geänderte Manuskript zur Durchsicht gegeben. Ich habe die Änderungen geprüft, aber wie der Teufel will, habe ich just diese Stelle übersehen … man merkt es: Murphy ist’n Arsch. 🙂
Eine mögliche Lösung des Problems
Wie bereits oben beschrieben, reicht es nicht wenn man die wp-config.php und die Präfixe der einzelnen Datenbank-Tabellen anpasst, da sich die Angaben zum alten Präfix auch noch in Datensätzen befinden. Folgende beiden Aufrufe sollten Abhilfe schaffen:
UPDATE neuesPrefix_options SET option_name = REPLACE(option_name, 'altesPrefix_', 'neuesPrefix_');
UPDATE neuesPrefix_usermeta SET meta_key = REPLACE(meta_key, 'altesPrefix_', 'neuesPrefix_');
Weitere Infos, unter anderem auch zu diesen beiden Aufrufen findet man im folgenden Artikel: WordPress: “Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen”
Ich müsste mal testen ob es reicht, wenn man in der exportierten SQL-Datei einfach im Texteditor per Serach & Destroy Suchen und Ersetzen das alte durch neue Präfix ersetzen könnte. Oder hat es jemand schon evtl. getestet?
Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienstleistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.
Wichtig ist vor allem auch, dass nicht nur in der Datenbank die Präfixe geändert werden, sondern dass auch in der wp-config.php der Wert auf das neue Präfix geändert wird:
$table_prefix = 'Prafixneu_';
Dann klappt’s auch mit dem Ändern.
@RL,
die Anpassung der wp-config.php wird in dem Zeitschriften-Artikel erwähnt, ich habe auf den Hinweis hier verzichtet, weil es eine Selbstverständlichkeit ist, genau wie der Hinweis, dass die MySQL-Datenbank installiert sein und geänderte wp-config.php hochgeladen werden muss.
Hallo, danke für den Artikel. Habe mich schon oft gefragt, wie man denn im Nachhinein das Tabellen-Präfix ändern kann, mich nicht getraut, es einfach mal so zu machen. Wie ich gerade lesen konnte, zurecht, denn sonst stünde ich vor der Haustür und käme nicht hinein 😳
Einige Fragen:
– die beiden von Dir genannten Aufrufe, wo füge ich die ein? In die config.php?
– muss ich die Zeilen anschließend wieder löschen?
Dank für AW
@bassoprofondo,
diesen Aufruf musst innerhalb von phpMyAdmin oder einem anderen Datenbank-Verwaltungstool machen.
Das Plugin WP Security Scan bietet eine Option zum Ändern des Tabellen-Präfixes. Eine mögliche Lösung für alle die sich manuelle Eingriffe nicht zutrauen.
Leider prüft das Plugin vor der Änderung nicht ob die wp-config beschreibbar ist. Es ändert die Tabellen-Präfixe, versucht dann die wp-config zu bearbeiten und ändert erst dann die Optionen. Ist die wp-config nicht beschreibbar, stürzt das Plugin ab und das Blog ist außer Gefecht gesetzt.
@Ralf,
genau dieses Plugin habe ich bei einer Testinstallation ausprobiert und trotz beschreibbarer wp-config.php hat es nicht geklappt und ich kam nur durch das Aufspielen eines MySQL-Backups wieder rein.
Für ältere WP Versionen (bis 2.3) gab es auch:
http://blogsecurity.net/wordpress/wp-prefix-changer-v11-released
Wird aber scheinbar nicht mehr weiterentwickelt.
[…] habe vor knapp drei Wochen darüber berichtet, dass ich einen WordPress-Artikel für das c't extra 01/2010 – Webdesign […]
[…] Die Umgehung des Problems steht hier. […]