My Universe Logo

My Universe Blog » Entries Tagged as Perl

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

Primzahlen und Faktorisierung

Posted by André Mühlnikel at March 14, 2009 12:26 p.m.

Dank projecteuler.net habe ich mal wieder angefangen, mich mit Perl auseinander zu setzen. Der größte Brocken bisher: Primzahl-Faktorisierung einer ziemlich großen Zahl. Nach ein paar ersten ziemlich erfolgversprechenden Versuchen, ein binäres Sieb_des_Eratosthenes zu bauen (also jede Zahl von 1 bis N wird durch ein Bit dargestellt - 0 = keine Primzahl, 1 = Primzahl), musste ich feststellen, dass das sehr schnell meinen Arbeitsspeicher sprengt (600 Mrd Bit = 75 GB), zumal das allermeiste davon nur 0en sind. Ziemlich unbefriedigend, also auf zur „Brute-Force“-Lösung des Siebes: man nehme alle bekannten Primzahlen (mindestens also „2“ als kleinste Primzahl) und probiere für jede neue Zahl aus, ob sie durch eine der Primzahlen teilbar ist. Das dauert aber UNENDLICH lange (jedenfalls fast). Also optimieren:

continue reading Primzahlen und Faktorisierung

No comments | Defined tags for this entry: open source, Perl, programming, Project Euler

Page 1 of 1