Archiv für August 2009

[PHP] Wenn der Kanarienvogel nicht mehr zwitschert

Veröffentlicht am 21. August 2009 um 17:40 by Fabian Martin Permalink

Wer sich wundert warum seine PHP Skripte ohne ersichtlichen Grund einen HTTP 500 Internal Server Error liefern, sollte einmal prüfen ob Suhosin aktiv ist.

Dieser Auszug stammt von einem unserer Debian Server und repräsentiert in jeder Zeile einen HTTP 500 Error.

Aug 17 11:44:14 srv1 suhosin[14716]: ALERT - canary mismatch on erealloc() - heap overflow detected (attacker '80.*.*.*', file '../index.php')
Aug 17 11:44:15 srv1 suhosin[14717]: ALERT - canary mismatch on erealloc() - heap overflow detected (attacker '80.*.*.*', file '../index.php')
Aug 17 11:44:16 srv1 suhosin[14718]: ALERT - canary mismatch on erealloc() - heap overflow detected (attacker '80.*.*.*', file '../index.php')
Aug 17 11:44:16 srv1 suhosin[14719]: ALERT - canary mismatch on erealloc() - heap overflow detected (attacker '80.*.*.*', file '../index.php')

Was ist passiert?
Suhosin versucht Attacken auf Sicherheitslücken in PHP bzw. PHP Skripten zu erkennen und zu verhindern. Hierzu überwacht es u.a. den Arbeitsspeicher, und fügt beim Schreiben von Daten noch eigene Informationen hinzu. Sind diese Informationen beim Abrufen fehlerhaft, oder fehlen sie komplett, glaubt Suhosin einen Fehler zu erkennen, und beendet die Ausführung von PHP.

Wie? Wo? Was?
Ob der Kern oder ein Modul von PHP Schuld haben, lässt sich nicht so einfach sagen, da Suhosin zu wenig Informationen liefert. Man geht aber davon aus, das die Fehler in den PHP Modulen stecken.

Was kann ich machen?
Entweder man deaktiviert alle PHP Module nacheinander, bis kein Fehler mehr auftritt, oder man deaktiviert direkt Suhosin. Update: Auch mit ausgeschaltetem Suhosin kann der Fehler auftreten, da das Verhalten durch den Hardened-PHP Patch direkt im Kern steckt. Interessanterweise bringt das deaktivieren von Suhosin eine derartige Senkung mit sich, das ich nur durch eine eindeutige Fehlkonfiguration von PHP den Fehler wieder zu sehen bekam (session.save_handler war auf memcache eingestellt, memcached selber aber nicht gestartet).

Warum Kanarienvogel?
Der Kanarienvogel (canary) in der Fehlermeldung bezieht sich auf den Bergbau. Dort hat man in der Vergangenheit Kanarienvögel mit in den Untergrund genommen, um zu prüfen ob in einem Stollen genug Sauerstoff vorhanden war. Sind die Vögel verendet, wusste man das Gefahr droht, und hat die Arbeit sofort beendet.

IE6 nicht tot zu kriegen

Veröffentlicht am 16. August 2009 um 23:50 by Fabian Martin Permalink

example_trash_ieDie schreckliche Nachricht gleich am Anfang: den IE wird es noch eine Weile geben … bis 2014

Man führe sich das vor Augen: Weil Firmen bislang scheuen auf den IE7, IE8, Firefox, Opera, Google Chrome oder Apple Safari zu wechseln, um Unternehmensanwendungen in ihrer Funktion nicht zu gefährden, müssen wir armen Webentwickler uns weiterhin mit diesem besch…eidenen Browser rumschlagen.

Dabei wäre doch genau jetzt die Gelegenheit den Umstieg zu beginnen. Dadurch das viele Firmen aufgrund von Kurzarbeit wie leer gefegt wirken, werden die Softwareentwickler nicht durch unnötige Support Anfragen genervt, die man mit ein wenig gesundem Menschenverstand selbst lösen könnte.

Alternativ sollte ich vielleicht von Webentwicklung auf reguläre Desktop Programme umsteigen … wobei, da darf man sich ja mit alten und neuen Betriebssystem auseinandersetzen … hat halt alles Vor- und Nachteile.

IE6 No More – Weg mit dem Schrott

Veröffentlicht am 6. August 2009 um 10:12 by Fabian Martin Permalink

Die Initiative IE6 No More möchte erreichen das der IE6 endlich aus dem Internet verschwindet.

Ein Anliegen das ich gern unterstütze. Täglich darf ich mich mit den Problemen rumschlagen, die dieser mittlerweile 8 Jahre alte Browser macht, und irgendwann ist auch mal genug. Ich will endlich Seiten machen können, ohne alles an den IE6 mit irgendwelchen Tricks anpassen zu müssen.

via: Golem