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:
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.
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!
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.
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.