Linkpool Nummer 27 + Adventskalenderartikel 10.12. – 24.12.
Heute wieder eine lange Liste mit Artikeln die es zu Lesen gilt, hauptsächlich gefüllt mit Artikeln aus den Adventskalendern 2011. Artikel vor dem 09.12. befinden sich im ersten Adventskalender-Übersichts-Artikel.
Info über ein 3 Jahre altes RFC für PHP für eine neue Syntax für Getter und Setter:
10 Gründe nicht Test-Driven-Development (TDD) zu machen (oder auch nicht):
Interessante Graphiken zur Versionsverbreitung von Browsern und Plugins:
Interne Informationen wie Datentypen in PHP aussehen: ZVAL und so weiter:
Zusammenfassung Adventskalender 2011 von Mayflower:
Meist gelesene Artikel, Besucherzahlen und Besucherzeiten von 2011 hier im Blog
Hier eine Top 10 Liste der Artikel die die meisten Besucher angezogen haben:
Platz | Artikel | Veröffentlichungsdatum | Kommentare |
---|---|---|---|
10 | HTML 5 und Javascript 5: Clientseitige Datenbanken | 6. Januar 2010 | 7 |
9 | Schöner hashen mit bcrypt | 18. Juli 2011 | 30 |
8 | PHP in_array() die Performance-Bremse | 26. Januar 2011 | 20 |
7 | Screenshots von Webseiten erstellen mit PHP | 21. Juli 2011 | 28 |
6 | Mit Wetterdaten arbeiten: Yahoo Weather API | 24. Januar 2011 | 2 |
5 | Expires-Header und Komprimierung aktivieren im Apache2 | 8. März 2010 | 16 |
4 | Pimcore – Interessantes OpenSource CMS | 23. Dezember 2010 | 35 |
3 | PHPStorm 2.0 – meine favorisierte IDE für PHP | 22. März 2011 | 46 |
2 | Mit Wetterdaten arbeiten: Google Weather API | 18. Januar 2011 | 7 |
1 | Passwortmythen oder "Was Du schon immer über Passwörter wusstest, aber nie zu sagen wagtest" | 11. Juli 2011 | 82 |
Letzte Aktion in 2011: Server via IPv6 verfügbar machen
So, damit es nicht heißt mein Blog wäre in 2011 nicht via IPv6 erreichbar gewesen ist meine letzte Aktion dieses Jahr meinen Webserver via IPv6 erreichbar zu machen. Da mein Hoster nun auch endlich IPv6 für virtuelle Server anbietet war das ziemlich einfach: Man mußte im Kundenbereich die IPv6 Konnektivität aktivieren und 10 Minuten warten. Und schon war der Server via IPv6 erreichbar:
$ ifconfig venet0 | grep inet6 inet6-Adresse: 2a01:238:42b6:2a00:e661:84eb:4a08:ee54/128 Gültigkeitsbereich:Global inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
Dann mußte ich gerade noch den nginx neu kompilieren für die IPv6 Funktionalität (wurde eh mal wieder Zeit, war noch eine alte 0.8.53 Version), sodass ich nun die aktuelle 1.0.11 verwende:
HashDoS Angriff legt (unter anderem) PHP lahm
Ich bin leider die letzten 2 Tage nur wenige Stunden dazu gekommen die Live-Streams vom 28. Chaos Communication Congress (28C3) zu schauen, aber bzgl. PHP ist heute Nachmittag ein interessanter Talk gehalten worden mit dem Thema Effective Denial of Service attacks against web application platforms dem ich hier einen kurzen Artikel widmen werde.
Es geht darum wie PHP (und die anderen anfälligen Sprachen auch) Hash-Tabellen erstellen und verwalten. Die hier interessante Hash-Tabelle ist das $_POST Array, das man von außen füllen kann, und das anfällig ist wenn man nur genügend „passende“ Datensätze reinfüllt. Der Algorithmus der die Hash-Tabelle befüllt wird nämlich langsamer sobald Kollisionen der Keys auftreten. Schickt man also beispielsweise 300KB POST-Daten an ein PHP-Script ist eine schnelle CPU damit ca. 30 Sekunden unter Volllast. Bei 8MB (dem Standard-Maximum für POST-Daten in der php.ini) wären es immerhin schon 5 Stunden, die die CPU benötigt um die Hash-Table zu füllen. Man kann also mit einer relativ kleinen DSL-Leitung einigen Schaden anrichten. Mit einer Gigabit-Leitung kann man so 10.000 CPU-Kerne dauerhaft beschäftigen.
Frohe Weihnachten!
Ich wünsche euch allen frohe Weihnachten, lasst euch reich beschenken, vergebt euren Eltern wenn sie wieder peinliche Situationen herbeiführen, und verzeiht es euren Omas wenn sie zu euch den altbekannten Satz „Junge, bist du aber groß geworden“ sagen.
Ich wünsche euch noch keinen guten Rutsch denn hier im Blog wird es zwischen den Feiertagen noch einige Artikel geben.
In diesem Sinne…
Michael