Archive for the ‘PHP’ Category
Auf Warnings, Notices und sogar Fatal Errors reagieren
In besonders kritischen Scripten baue ich gern zur Sicherheit noch eine erweiterte Log-Funktion ein, die auch noch aufgerufen wird bei einem FATAL ERROR oder bei einem exit() oder die() in einer Fremdbibliothek (pfui). Man kann so auch beim Vorkommen einer Notice das Script beenden, das kann manchmal sehr sinnvoll sein. Natürlich kann man mit Hilfe der error_log Einstellung in der php.ini und einem error_reporting „E_ALL^E_STRICT“ diese Fehler auch wegloggen, aber man ist nicht flexibel wenn man im Code darauf reagieren möchte. Beispielsweise könnte es sein dass bei einem FATAL ERROR noch etwas aufzuräumen ist, damit kein Müll hinterlassen wird.
Nehmen wir folgendes Beispiel:
<?php register_shutdown_function('shutdownFunction'); function shutDownFunction() { $error = error_get_last(); if ($error['type'] == 1) { // log error to syslog, send email or sms, this should not happen! } } echo nonExistingFunction();
Bei sauberem Code sollte das natürlich nicht passieren. Aber es gibt Situationen in denen ein Fatal Error passieren kann, wenn man beispielsweise eine Funktion aufruft mittels call_user_func() ohne eine vorherige is_callable() Prüfung, oder oder.
OK, nächstes Beispiel:
Passwortmythen oder „Was Du schon immer über Passwörter wusstest, aber nie zu sagen wagtest“
Gastartikel von Oliver Sperke.
Ich bin 34 Jahre alt und seit 10 Jahren selbständiger Webentwickler. Mein Fokus liegt dabei auf der Erstellung, Beratung und Optimierung in den Bereichen High Performance, Usability und Sicherheit in den gängisten Internetsprachen: PHP, HTML, Javascript und CSS.
Was Du vor dem Lesen wissen solltest
Die Sicherheit eines Passwortes ergibt sich aus dem verwendetem Zeichensatz und der Länge des Passwortes. Besteht ein Passwort nur aus den Ziffern 0 bis 9, hat der Zeichensatz eine Länge von 10. Besteht ein Passwort aus maximal 8 Ziffern, ergibt sich eine Anzahl möglicher Passwörter von 10^8+10^7+10^6+10^5+10^4+10^3+10^2+10^1 oder ~ 111,11 Mio. Möglichkeiten. In den meisten Erklärungen steht übrigens nur 10^8, allerdings gilt das nur, wenn ein Angreifer die Länge des Passwortes kennt. Ansonsten muss er nämlich alle Möglichkeiten ausprobieren, d. h. 0, 1, 2…01, 02, usw bis 99999999. Werden zusätzlich Kleinbuchstaben (also 0-9, a-z, äöüß) verwendet, ergibt sich ein „Schlüsselraum“, d. h. die mögliche Anzahl Passwörter von 40^8+40^7+…+40^1, also 6.72 Billionen Möglichkeiten usw.
Mythos: Ein Passwort mit mindestens 8 Zeichen ist sicher
Diesen Satz lese ich seit 10 Jahren mindestens dreimal im Jahr, nur vor 10 Jahren arbeiteten die schnellsten Heimcomputer in etwa auf dem Niveau eines heutigen Smartphones. Innerhalb dieser 10 Jahre hat sich die Computerwelt rasend schnell verändert. Auch durch das „pöse Internetz“, in dem viele Menschen ihre Ideen und ihr Wissen verknüpfen können. Während damals die wenigen Hochleistungsrechner in den Geheimdienstzentralen und IBM Laboren standen, gibt es heute völlig andere Methoden, um ein hohes Maß an Computerleistung zu erreichen. Diese reichen von der Nutzung der kompletten Hardware inkl. Grafikkarte, über Botnetze bis hin zu mietbaren Cloudlösungen.
Moderne Systeme erreichen dadurch heute weit höhere Werte beim Erraten („Brute Force“) von Passwörtern als damals. Vergleichsweise neue Techniken wie „Rainbow Tables“, die es damals einfach noch nicht gab verschärfen die Situation. Der Schlüsselraum von 8 Zeichen mit einem Zeichensatz von 102 Zeichen kann auf einem handelsüblichem Supercomputer innerhalb weniger Stunden durchprobiert werden. Das ist kein Puffer, auf den man sich verlassen sollte. Im Jahr 2011 sollte man diesen Standard endlich auf 12 Zeichen anheben, zumindest bis zum Jahr 2020.
Mythos: Ein drei Monate altes Passwort ist unsicher
Gewinner der Verlosung zum zweiten Geburtstag
So, endlich habe ich Zeit die Gewinner der Verlosung preiszugeben, so ein Urlaub ist echt stressig, danach hat man immer so viel nachzuholen, unglaublich.
Zuerst möchte ich mich nochmals bei allen Firmen die Preise zur Verfügung gestellt haben bedanken!
Dann wollen wir uns anschauen wie die Gewinner zustande gekommen sind. Der folgende SQL Query hat die Gewinner-Reihenfolge ermittelt:
SELECT comment_author, comment_author_email, SHA1(CONCAT(comment_author_email, 'Zweiter Geburtstag')) as hash FROM wp_comments WHERE comment_post_ID = 2728 AND comment_author != 'Michael Kliewe' AND comment_date < '2011-07-05 00:00:00' AND comment_author_email != '' GROUP BY comment_author_email ORDER BY hash
Zu jedem Kommentar wurde also ein Hash generiert, und dann alphabetisch sortiert, derjenige mit dem „kleinsten Hash“ gewinnt. Das führt uns zu folgender Tabelle:
Zwei Jahre PHP Blogging: Ihr werdet beschenkt!
*tröööt* Zwei Jahre, zwei kurze Jahre, wird dieser Blog gefüllt mit PHP- und anderen Webtechnik-Artikeln, und auch einige Gastautoren haben bereits hier veröffentlicht (es könnten aber gern noch mehr werden!), und dieser Blog wäre nichts ohne euch Leser, die ihr durch Feedback und Ergänzungen zur Diskussion und Wissensbildung beitragt. Deshalb möchte ich mich bei euch bedanken und euch mit einigen Geschenken eindecken.
218 Artikel in 2 Jahren, 2337 Kommentare (bereits spambereinigt), kein schlechter Schnitt, und ich habe viel gelernt von euch, Danke!
21 Firmen stellen insgesamt 192 Geschenke zur Verfügung, und es sind alles großartige Sachen, der Gesamtwert liegt bei ca. 4800 Euro, und einige sind nicht käuflich! Schaut euch die folgende Liste genau an (ihr könnte da auch draufklicken um Details zu erfahren):
——————————————————————————————
1 * International PHP Conference im Herbst 2011 von S&S Media
1 * Dutch PHP Conference 2012 (ohne Tutorial Tag) in Amsterdam von ibuildings
3 * 100 Euro Gutscheine von cloudControl, dem deutschen PHP Platform-as-a-Service Anbieter
3 * Basic Hosting Paket von Orchestra.io, 1 Jahr lang die PHP-Cloud genießen
10 * 29 Dollar Gutschein für PHPFog, ebenfalls ein sehr guter PHP PaaS Anbieter
1 * Zend Studio 8.0 Lizenz von Zend
10 * schwarze YubiKeys von Yubico
5 * Personal Lizenzen einer der folgenden IDEs von JetBrains: PHPStorm, IntelliJ IDEA, RubyMine, PyCharm, ReSharper, WebStorm
5 * Jahresabonement des PHP-Magazin
1 * PHP Design Patterns von O’Reilly
1 * Canvas – kurz & gut von O’Reilly
1 * jQuery – kurz & gut, 2. Aufl. von O’Reilly
1 * Der pragmatische Programmierer von Hanser
1 * Softwarequalität in PHP Projekten von Hanser
1 * Zend Framework im Einsatz von Hanser
1 * PHP Zend Certified Engineer Übungsbuch vom mitp Verlag
1 * Der leidenschaftliche Programmierer von mitp
1 * Web-Sicherheit von mitp
1 * Power-Workshops PHP von Video2Brain
2 * Plug-in-Entwicklung mit jQuery von Entwickler-Press
2 * MongoDB – Sag ja zu NoSQL von Entwickler-Press
2 * Onlinerecht für Webmaster von Entwickler-Press
2 * Websites optimieren für Google&Co von Entwickler-Press
1 * Agile Entwicklungspraktiken mit Scrum von dpunkt
1 * Leitfaden Web-Usability von dpunkt
1 * Die Pomodoro-Technik in der Praxis von dpunkt
1 * Gelungenes Webdesign von dpunkt
1 * Agile Softwareentwicklung von dpunkt
1 * Einstieg in PHP 5.3 und MySQL 5.5 von Galileo Press
1 * Linux Hochverfügbarkeit von Galileo Press
1 * CSS in der Praxis von Galileo Press
2 * vServer L für 6 Monate kostenlos von 1blu
2 * eco Server für 6 Monate kostenlos von 1blu
3 * Zeitmanagement für Webentwickler von Terrashop
5 * 2 Planning Poker Sets von Holisticon
2 * 5 Planning Poker Sets von agile42
100 * vServer Beta-Accounts Gutscheine von EUserv
——————————————————————————————
Na, ist das eine Liste? Und das ist alles FÜR EUCH! Ich hatte mir erst überlegt noch eine extra kleine Webseite zu bauen für die Verlosung, aus Zeitmangel ist sie aber nicht fertig geworden.
Doch die Verlosung wäre nicht möglich gewesen ohne die zahlreichen Unterstützer, DENEN ICH ALLEN GANZ HERLICH DANKEN MÖCHTE!! Ich würde mich freuen wenn ihr die ein oder andere Webseite besuchen würdet und dort immer schön fleißig einkauft und Dienstleistungen nutzt, so viele Geschenke zu bekommen ist wirklich toll und sollte belohnt werden!
Ihr müßt 2 Dinge tun um bei der Verlosung mitzumachen: Besucht mindestens 3 Links aus der Liste oben, und danach hinterlasst ihr einem Kommentar hier im Blog, JEDER NUR EINMAL TEILNEHMEN, und dann werden all diese schönen Geschenke verlost. Ihr habt Zeit bis zum 04.07.2011, dann wird die riesige Lostrommel gerührt! Also, spread the word, twittert, bloggt, sagt es allen weiter, dieser Tag ist ein toller Tag! Ihr macht diesen Blog zu dem was er ist! Danke.
Slides der php|tek 11
Die PHP Konferenz Saison ist in vollem Gange, und auch dieses Jahr fand wieder die php|tek statt, in der 11. Auflage kamen vom 24. bis 27. Mai 2011 viele PHP Interessierte in Chicago zusammen.
Das Programm inklusive Links zu den Slides:
24. Mai 2011
Mobile for PHP Developers
Ivo Jansch
Writing and Using PHP Streams and Sockets
Elizabeth Marie Smith
Zend Framework Tutorial
Rob Allen
Design Patterns
Jason E. Sweat
Optimizing MySQL Essentials
Ligaya Turmelle
NoSQL: Why, How and When
Benjamin Young
25. Mai 2011