Beitrag wurde zuletzt am aktualisiert

WordPress speichert nicht mehr vollständig

Wordpress Suhosin AlertWordpress Suhosin Alert

Dieser Artikel hat sicherlich keine Allgemeingültigkeit, da Probleme bei WordPress sehr vielschichtig sein können. Oftmals führen fehlerhafte Plugins, unzureichende Verzeichnisrechte oder einfach eine falsche Bedienung zu den unterschiedlichsten Problemen. Außerdem ist dieser „Fehler“ auch nicht auf WordPress beschränkt und könnte theoretisch bei allen Content Management Systemen und PHP-Anwendungen auftreten.

Mein Supergau am heutigen Tag zeigte sich wie folgt:

Beim Neuanlegen bzw. Bearbeiten eines Artikels wurde dieser nur teilweise gespeichert. Die eigentlich gesetzten Haken für das Zulassen der Kommentare sowie Trackbacks und Pingbacks wurden nicht in der Datenbank gespeichert. Hier stand wirklich ein „closed“ bei comment_status und ping_status in der Tabelle posts. Aber auch weitere Elemente, z.B. in den Feldern des Plugins wpSEO, waren nach dem Speichern eines Artikels wieder leer.
Mehrere Tests haben gezeigt, dass erst eine Verwendung des Editors (egal ob visuell oder im Text-Modus) zu diesen Fehlern führte.

Natürlich habe ich WordPress nochmals händisch neu geupdatet, Plugins deaktiviert, eigene Anpassungen in der wp-config.php verworfen, zusätzliche Sicherheitsrichtlinien vorübergehend aus der Serverkonfiguration entfernt, den Browser gewechselt und so weiter und sofort.

Die Lösung stand letztendlich in den Serverlogs

ALERT – configured POST variable limit exceeded – dropped variable

In den error.logs von www.redirect301.de wurde ich schließlich fündig und keine 2 Minuten später war das Problem behoben.

[Sat Jan 26 16:49:18 2013] [error] [client 203.0.113.0] ALERT - configured POST variable limit exceeded - dropped variable 'meta[23252][key]' (attacker '203.0.113.0', file '/pfad/zum/webprojekt/wp-admin/post.php'), referer: https://www.redirect301.de/wp-admin/post.php?post=12345&action=edit

Kurz gegoogelt und im Blog von Giuseppe Urso stand es dann auch schwarz auf weiß: Der „Schutzengel des PHP-Kerns“ suhosin verhindert in der Standardeinstellung die Übertragung größerer Requests und fängt den vermeintlichen Angriff beim Speichern eines WordPress-Artikels ab.

Die Werte von der Suhosin-Extension anpassen

Wer seinen eigenen Server administriert, sollte in seiner php.ini nach der suhosin Ausschau halten. Die Suhosin-erweiterung könnte beispielsweise hier includiert sein. Bei einem Debian-/ Ubuntu-Server dürfte man sie unter /etc/php5/apache2/conf.d/suhosin.ini finden.

Hier müssen die folgenden beiden Werte erhöht werden (das Entfernen des Semikolons „;“ dabei nicht vergessen):

sudo edit /etc/php5/apache2/conf.d/suhosin.ini
suhosin.post.max_vars = 500
suhosin.request.max_vars = 500
sudo /etc/init.d/apache2 restart

Mit diesen Einstellungen wären nun serverweit die beiden Werte (post.max_vars und request.max_vars) von standardmäßig 200 auf 500 erhöht. Wer nicht gleich den ganzen Server auf größere Werte umstellen möchte, kann auch nur für den betroffenen Vhost diese Anpassung vornehmen.

Suhosin-Anpassungen ohne Zugriff auf die php.ini

Wer seine Konfiguration des virtuellen Hosts selbst anpassen oder zumindest erweitern kann, sollte es mit diesem Eintrag versuchen und anschließen den Apachen neu starten bzw. den automatischen Reload abwarten:

php_admin_value suhosin.post.max_vars 500
php_admin_value suhosin.request.max_vars 500

Manche Hoster lassen auch Änderungen per .htaccess-Datei zu. Hier wären diese beiden Zeilen hinzuzufügen:

php_value suhosin.post.max_vars 500
php_value suhosin.request.max_vars 500

Hat man auf all diese Bereiche keinen Zugriff, dann hilft es sicherlich beim Hoster anzurufen und mit ihm darüber zu sprechen. Nutzt die Kommentare bei Fragen, gern helfe ich – wenn ich kann – weiter.

3 Kommentare zu "WordPress speichert nicht mehr vollständig"

  1. Darauf muss man auch erstmal kommen. Otto Normalverbraucher googelt da bestimmt na weile, bis er den Fehler gefunden hat. Zum Glück wurde ich bisher von solchen Fehlern verschont!

  2. Hallo, ich habe seit 2 Tagen folgendes Problem: Ich kann weder die Kopfzeile noch die Fußzeile noch die Startseite verändern. Nehme ich Veränderungen vor und ich Aktualisiere, will die Seite speichern unter /wp-admin/post.php und es kommt : The link you followed may be broken, or the page may have been removed. (/wp-admin/edit.php?post_type=us_footer)
    Ich kann die Webseite nun nicht fertigstellen, weil ich z.b. in der Fußzeile noch einiges verändern will.

  3. Problem gelöst: Bei mir lag es an einer Security Einstellung. Ich habe auf dem Controlpanel meines Hosters, die Einstellung Sicherheit ==> ModSecurity kurzzeitig aus geschaltet. Dann habe ich meine Änderungen vorgenommen und ModSecurity wieder eingeschaltet. Seitdem kann ich auch so wieder Änderungen vornehmen.

Hinterlasse einen Kommentar

E-Mail Adresse wird nicht veröffentlicht.