PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘PHP’ Category

Auf Warnings, Notices und sogar Fatal Errors reagieren

with 14 comments

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:

Weiterlesen »

Written by Michael Kliewe

Juli 12th, 2011 at 9:29 am

Passwortmythen oder „Was Du schon immer über Passwörter wusstest, aber nie zu sagen wagtest“

with 89 comments

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

Weiterlesen »

Written by Oliver

Juli 11th, 2011 at 9:41 am

Posted in Allgemein,PHP

Tagged with , ,

Gewinner der Verlosung zum zweiten Geburtstag

with 46 comments

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:

Weiterlesen »

Written by Michael Kliewe

Juli 8th, 2011 at 1:31 pm

Posted in PHP

Tagged with , ,

Zwei Jahre PHP Blogging: Ihr werdet beschenkt!

with 342 comments

*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.

Written by Michael Kliewe

Juni 10th, 2011 at 11:02 am

Slides der php|tek 11

with one comment

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

Weiterlesen »

Written by Michael Kliewe

Juni 8th, 2011 at 9:43 am

Posted in PHP

Tagged with , , ,