PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for Juli, 2011

Passwort Blacklist

with 32 comments

Kunden, die eine Webseite mit Registrierung und Login benötigen kann man nicht immer davon überzeugen, strenge Passwortrichtlinien anzusetzen. Wenn ich vorschlage „10 Zeichen, davon mindestens eine Zahl, ein Großbuchstabe und ein Sonderzeichen“ wird das nicht selten abgelehnt, mit Hinweisen auf „Dann sinkt die Conversion-Rate“, „Dann vergessen die Kunden andauernd ihr Passwort und wir haben mehr Supportaufwand“ etc. Also kommt häufig die Richtlinie „mindestens 8 Zeichen“ zum Einsatz.

Damit ich mich darauf einlasse verlange ich aber mindestens eine Passwort Blacklist, sprich eine Liste der meistgenutzten Passwörter, die dann nicht erlaubt sind, beispielsweise „12345678“ oder „passwort“, um das ganze zumindestens etwas sicherer zu machen. Man muss den Benutzer vor sich selbst schützen, sonst werden sie „12345678“ oder „passwort“ als Passwort nutzen.

Weiterlesen »

Written by Michael Kliewe

Juli 20th, 2011 at 10:14 am

Mehrere Scripte via Cronjob parallel aufrufen

with 15 comments

Heute ein kleines Problemchen mit Cronjobs und Parallelität. Normalerweise empfehle ich Gearman wenn es darum geht, mehrere Scripte im Hintergrund laufen zu lassen, aber nehmen wir an dass wir es mit normalen Cronjobs ohne Gearman lösen wollen.

Wir haben also das Script work.php. Wir möchten alle 5 Minuten die Datenbank prüfen ob es Arbeit gibt, und wenn dem so ist, dann soll die Arbeit erledigt werden. Das geht relativ einfach mit einem Cronjob

*/5 * * * * /usr/bin/php /data/work.php

und in der work.php findet dann die Datenbankabfrage statt. Wenn X Ergebnisse in der Datenbank gefunden werden, wird eine Schleife X mal durchlaufen um alles abzuarbeiten. So weit so gut.

Nun sei die eigentliche Arbeit aber relativ zeitaufwändig, sodass ein Schleifendurchlauf 2 Minuten dauert, und bei 5 Aufträgen dauert es also 10 Minuten (wir arbeiten ja seriell in einer Schleife), der Aufruf von work.php überlappt und wir bekommen ein Problem. Angenommen die Aufgabe ist parallelisierbar, d.h. wenn man alle 5 Aufgaben zeitgleich starten würde gäbe es keine Probleme, und die ganze Arbeit wäre nach 2 Minuten erledigt. Wir könnte man soetwas einfach realisieren?

Weiterlesen »

Written by Michael Kliewe

Juli 19th, 2011 at 9:25 am

Posted in PHP

Tagged with , ,

Schöner hashen mit bcrypt

with 94 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.

Bei meinem vorherigem Gastbeitrag wurde ich direkt im ersten Kommentar aus meiner heilen Welt geworfen. Dort stand nämlich folgender „erschütternder Kommentar“ zu lesen:

Das du Salting und Mehrfachhashing predigst, während der Rest der Welt schon einen Schritt weiter zu bcrypt geht… Traurig.

Nun ja, dazu möchte ich drei Dinge sagen.

  1. Ich predige nicht (Ausnahme: „Es heißt Standard, verdammt, nicht Standart!“).
  2. Ach, wenn die Welt schon mal auf dem Stand des einfachen md5 wäre …
  3. Bcrypt verdient einen eigenen Beitrag.

Natürlich hatte der Autor völlig recht. Über Hashfunktionen im Web zu schreiben und bcrypt nicht zu erwähnen ist fast schon schändlich. Also bcrypt ist eine Hashfunktion, die auf Langsamkeit optimiert wurde. Um genauer zu sein, es ist nicht mal ein richtiger Hashalgorithmus, sondern eine Blowfish Verschlüsselung, bei der am Ende „die Schlüssel weggeworfen werden“, daher lässt sich das Ergebnis nicht mehr entschlüsseln. bcrypt ist eine Weiterentwicklung der „Traditional DES Scheme“ Funktion aus der Unixwelt. Obwohl dieses Verfahren 30 Jahre lang (!) gute Dienste geleistet hat, stellen sich so langsam „Alterserscheinungen“ ein. Der Zahn der Zeit nagt auch hier in Form von gestiegener Rechenleistung.

Kurze Rückschau

Weiterlesen »

Written by Oliver

Juli 18th, 2011 at 8:56 am

Posted in Linux,PHP

Tagged with , , , ,

Linkpool Nummer 18

without comments

Ergänzend zum Blog-Artikel „Sichere Passwörter“ diese Woche:

7 Hinweise, eine sichere PHP Applikation zu erstellen:

In 5 Schritten zur „Offline-HTML5-Web-App“:

Wie man Zend_Config beschleunigen kann:

Cross-Site-Scripting(XSS) Lücke in Skype:

Mozillas Alternative zu OpenID: BrowserID

Written by Michael Kliewe

Juli 16th, 2011 at 11:20 am

Posted in Javascript,PHP

Tagged with , ,

2. Phase des Ticketverkaufs der PHP Unconference 2011 in Hamburg

with 6 comments

Heute um ca. 14 Uhr beginnt die zweite Phase beim Verkauf der Tickets für die PHP-Unconference 2011 in Hamburg, die nächsten 100 Tickets kommen unter den Hammer. Ich kann jedem empfehlen dort hinzufahren, 35 Euro ist für eine PHP-Konferenz ein super Preis, dafür gibt es eine Menge Talks und 300 PHP Interessierte, viel Zeit und Möglichkeiten zum netzwerken. Und da bei einer Unconference die Talks von den Teilnehmern gehalten werden sind immer sehr interessante und neue Themen dabei. Wer selbst einen Talk halten möchte (es gibt meistens schöne Sachpreise am Ende für die Speaker) kann sein Thema auf der bald öffnenden „Contributor“-Seite eintragen. Welche Talks dann wirklich gehalten werden wird am ersten Tag der Unconference (am 10.09.) demokratisch gewählt.

Mich wird man dort wieder antreffen können, ich habe bereits in Phase 1 ein Ticket bekommen. Einfach ansprechen wenn ihr mich seht 😉

Written by Michael Kliewe

Juli 15th, 2011 at 9:17 am

Posted in PHP

Tagged with , , ,