Ich konnte meinen Augen kaum trauen, wie ich diesen Bug-Report auf php.net las. Eigentlich hatte ich ja nach etwas komplett anderem im Internet gesucht, aber das musste ich dann doch gleich mal ausprobieren.
Da wir schon lange kein mod_php mehr einsetzen musste ich mir am Wochenende erst einmal einen solchen Webserver auf einer virtualiseren Maschine (dazu ggf. auch bald mehr) installieren - ich nahm hierzu den Standard-Apache von openSuSE 10.3, der mit mod_php 5.2.4 kommt, und schrieb ein dem Bug-Report entsprechendes Programm in C, das ich lokal statisch kompilierte und "wie ein normaler Webhosting-Kunde" per FTP hochlud.
Und tatsächlich: Sobald ich das Programm mittels system() über einen PHP-Skript aufrief, dauerte es keine ganze Sekunde bevor sich das Programm des Port 80 bemächtigt hatte und fortan selbst dort Anfragen beantwortete. Apache lief parallel weiter, tat aber gar nichts mehr und lies sich auch nur noch schwer beenden, wobei ein Neustart ohne Beenden meines kleinen C-Programmes natürlich gar nicht möglich war.
Mich würde gerade mal interessieren, ob unsere Marktbegleiter sich dieses Problemes bewusst sind bzw. wie sie damit umgehen. Selbst ausprobieren kommt natürlich nicht in Frage, da das schon ein recht massiver Eingriff in den Betrieb ist. Ein wenig schade finde ich ja auch, wie das Problem als "nicht-PHP-Problem" im Bug-Report abgetan wird - meines erachtens nach ist und bleibt es ein PHP-Problem und sollte dementsprechend auch behandelt werden.
Abgesehen davon, dass wir PHP via FastCGI ausführen, erlauben wir auch kein system() o.ä., da man damit recht leicht solch Begrenzugn wie PHP's open_basedir umgehen kann. Ich finde ja das sollte jeder so machen
Kommentare