My Universe Logo

My Universe Blog » Entries Tagged as PHP

Pretty Hard to Protect

Posted by Jesco Freund at Dec. 14, 2010 10:52 p.m.

Unter diesem Titel hatte schon Captain Crunch anno 2006 einen recht bissigen, aber treffenden Artikel zu PHP geschrieben. Wirklich gebessert hat sich seither nichts – wenn pro Version (nach über einem halben Jahr) gefühlte 10 Vulnerabilities gefixt werden (siehe Release-Announcement für 5.3.4), zeugt das nicht von hohem Sicherheitsbewusstsein der PHP-Entwickler, sondern schlicht von miesem Qualitätsmanagement.

Die zahlreichen kritischen Bugs treten übrigens (fast) ausschließlich in den Extensions auf. Das legt für mich den Schluss nahe, dass der Ansatz, alle (Zusatz-) Funktionalität in (in C geschriebenen) Extensions zu organisieren, unter Qualitätsaspekten vielleicht nicht der beste ist. Andere Interpreter-Sprachen wie Perl oder Python konzentrieren sich bei der Programmierung mit C auf den Interpreter-Kern und lagern Zusatzfunktionalität in Module aus, die in der jeweiligen Interpretersprache selbst geschrieben sind.

So können diese auch von weniger erfahrenen Programmierern entwickelt und maintained werden – in Python oder Perl (oder auch PHP) selbst ist es einfach schwierig bis unmöglich, eine NULL pointer dereference oder einen Buffer Overflow zu provozieren. Dazu bedürfte es schon eines Bugs im Interpreter, dessen Code aber verhältnismäßig übersichtlich ist und daher einigermaßen gut auditiert werden kann.

Die ziemlich schlechte Qualität der PHP-Extensions ist meiner Meinung nach ein Stück weit dem Entwicklungsmodell geschuldet – Besserung ist daher erst zu erwarten, wenn hier ein Umdenken seitens der tonangebenden PHP-Entwickler stattfindet. Das ist allerdings derzeit nicht erkennbar…

No comments | Defined tags for this entry: Perl, PHP, programming, python, security

Blowing up my disk

Posted by Jesco Freund at Dec. 23, 2007 4:13 a.m.

Auf meiner Workstation (FreeBSD) läuft ein Apache mit mod_php zu Entwicklungs- und Testzwecken. Damit man auch schön was entwickeln und testen kann und sich PHP nicht gleich in die Hosen macht, sind max_execution_time und memory_limit kräftig hochgedreht – ersteres liegt bei 120 Sekunden, letzteres bei 256MB. Dazu noch ein sehr gesprächiges Logging (E_ALL), kombiniert mit einer for-Schleife mit fehlerhafter Abbruchbedingung, einem Schuß Übernächtigung garniert mit ein wenig Unaufmerksamkeit und zur Krönung des ganzen Eclipse, das nach jedem Speichern den PHP Browser aktualisiert – und schon fliegt einem die Kiste um die Ohren. Totalabsturz, nichts geht mehr; das System lässt sich auch nicht mehr brauchbar booten. Da hilft nur noch der Griff zur Rettungs-CD. Ein Blick auf die Platte offenbart: 4GB für /var waren einfach zu wenig. Mein kleiner Kunstgriff hat sage und schreibe 3,4GB an Error-Log erzeugt und laut df eine 108%ige Belegung der betroffenen Partition verursacht. Nichts, was sich nicht beheben ließe – UFS2 und ext2 sind zum Glück robuste Dateisysteme, und nach einem fsck ist auch alles wieder gut. Zeit für's Bett, würde ich sagen…

No comments | Defined tags for this entry: Eclipse, FreeBSD, killfile, PHP, programming

Page 1 of 1