Chrome, Transitions und Z-Index

Hey Hab mal für mein Projekt contestDB eine kleine Projektseite gemacht. Das ganze Funktioniert im Firefox einwandfrei und wie erwartet. Im Chrome hingegen kommt es zu zufälligen sperren der Navigationsbuttons durch überlagerung der CSS-Transition. Dabei wird im Chrome anscheinend der Z-Index in der priorität unterhalb der Transitions gelegt und somit ist der Button nicht mehr anklickbar. Die Experten von Cybton hatten auch keinen weiteren Rat. Bei Stackoverflow gab es schon einige ähnliche Fragestellung, allerdings funktionierte deren Lösungsweg nicht bei meiner Seite. Ich werde die Sache demnächst mal im Chrome Bugtracker reinschreiben, denn ich weiß keinen weiteren Ausweg.

Weitere Gedanken zu Bcrypt

Hallo zusammen Nach dem bekannt werden von dem Leak von den Passwörtern von LinkedIn und LastFM, hab ich zuerst mal meine LastFM Accounts gelöscht, wo ich mich sowieso nie eingeloggt habe. Dazu hab ich einen ganz interessanten Artikel über Heise.de gefunden, welcher ganz konkret die Vorgehensweise bei dem cracken dieser Hashes auflistet. Ich habe letztens über Verschlüsselung geschrieben und auch verschiedene Tests durchgeführt. Seit damals verwende ich überall wo es nur geht BCrypt, um genau in solchen Situationen, falls die Daten mal abhanden kommen sollten, gegen das lösen der Passwörter möglichst Resistent zu sein. Heute kam ein zusätzlicher Gedanke zu diesem Thema. Nämlich wird oft die Verschlüsselung von Webseiten gefordert, was auch Sinn macht, allerdings könnte man ja auch direkt beim Client den BCrypt hash berechnen lassen. Somit spart man selbst Ressourcen und zugleich werden Leute die den Netzwerkverkehr in einem Cafe oder anderen Öffentlichen WLan abhören das Klartext passwort nicht ersichtlich. Für BCrypt gibts bereits eine Javascript implementierung, welche sehr vielversprechend aussieht. Werde noch weiter prüfen müssen ob dies auch Sicher ist. Natürlich wäre es wünschenswerter wenn direkt der ganze Verkehr zwischen Client und Server verschlüsselt ist, wie beim neuen Webprotokoll von Google SPDY.

PHP Foreach über zwei Arrays

Wenn man zwei symmetrische Arrays (Gleiche Anzahl von Elementen) hat und man möchte über diese gleichzeitig iterieren, dann wird das mit einem normalen Foreach nicht funktionieren. Man kann hier allerdings ein bisschen tricksen und die Funktion nützen, dass man sowohl über Key als auch den Wert des Arrays verfügen kann. < ?php foreach (array_combine($name, $value) as $n => $v){ //double Iteration $sql.=$n.’=’.$v.’, ‘; } Ganz nützlich, wenn man sich SQL Statements zusammenbaut.

PHP Passwort Sicherheit und Hashes 2

Ich hab mal ein bisschen herumprobiert und interessante Ergebnisse bekommen: SHA-512: 0.0001068115234375 Bcrypt: 4.3771350383759 Sha1: 3.3855438232422E-5 Md5: 1.5020370483398E-5 < ?php function bcrypt_encode($password, $rounds=’12’){ $salt = substr(str_shuffle(‘./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’), 0, 22); return crypt($password, ‘$2a$’.$rounds.’$’.$salt); } function bcrypt_check($password, $stored){ return crypt($password, substr($stored, 0, 30)) == $stored; } $start = microtime(true); for($i = 0; $i < 10; $i++){ $x = hash(“sha512”, “123456”); } $end = microtime(true); echo ‘SHA-512: ‘.($end – $start).’ ‘; $start = microtime(true); for($i = 0; $i < 10; $i++){ $x = bcrypt_encode(‘123456’); } $end = microtime(true); echo ‘Bcrypt: ‘.($end – $start).’ ‘; $start = microtime(true); for($i = 0; $i < 10; $i++){ $x = sha1(“123456”); } $end = microtime(true); echo ‘Sha1: ‘.($end – $start).’ ‘; $start = microtime(true); for($i = 0; $i < 10; $i++){ $x = md5(“123456”); } $end = microtime(true); echo ‘Md5: ‘.($end – $start).’ ‘; Also wie man merkt, ist MD5 & SHA-1 wirklich auf Geschwindigkeit optimiert. Ich verwende hier abgeänderte Funktionen von hier, ohne die Einbindung der Email in den Hash. Mit 12 Iterationen bei bcrypt erreicht man schon sehr hohe Berechnungszeiten und kann dies noch natürlich steigern, allerdings ist die Frage, ab wann sich das noch lohnt. Einen Nutzer 10 Sekunden beim Login warten zu lassen ist […]

PHP Passwort Sicherheit und Hashes

Hey Ich habe zwar schon öfter darüber gelesen, dass MD5 Kollisionen beinhaltet, aber das bedrückte mich nicht weiter, bis ich heute einen Artikel bei Coding Horror laß über die Geschwindigkeit Passwörter zu berechnen. Demnach kann man mithilfe von seiner Grafikkarte, alle 6 Stelligen Passwörter mit Groß/Kleinbuchstaben, Sonderzeichen und Zahlen innerhalb von wenigen Minuten berechnen. Dies schockte mich doch ein bisschen, da doch von vielen “Experten” (Oder auch hier / oder hier) versichert wurde, dass MD5 mit einem Salt perfekt sicher wäre. (Irgendwie muss ich da grad selber darüber lachen). Bisher habe ich selbst in vielen von meinen Experimenten nur MD5 verwendet, mit verschiedenen Methoden einen Salt zu erstellen. Bei weiteren Nachforschungen stelle ich fest, dass auch SHA-1 mittlerweile nicht mehr als ganz sicher gilt. Coding Horror schlägt vor bcrypt (Welches auch unter BSD verwendet wird) oder bessere Algorithmen zu verwenden, welche bewusst darauf ausgelegt sind, langsam zu sein. Vor allem sollte, bei der Neuentwicklung einer Applikation, dies gegenüber Mehrfachhashen bevorzugt verwendet werden. Ich hatte bisher immer gelacht, wenn ich von Mitgliedern der Piratenpartei 30 Stellige Passwörter bekommen habe, aber irgendwo ist diese Vorsichtigkeit auch berechtigt. Eins ist klar: Wenn man ließt, dass einige Firmen immer noch Passwörter im Klartext speichern, […]

IE6 is finally dead

Webseiten für den IE6 zu entwickeln ist für viele Webdesigner der reinste Horror. Sachen wie Runde Ecken o.ä. werden zum reinsten Horror und lassen Auftraggeber viel Geld & Zeit kosten. Laut ie6countdown benutzen weniger als 10% der Internetbenutzer den 6er. Die meisten die ihn noch benutzen, kommen aus China. Facebook hat für IE6 Benutzer bereits den Zugang limitiert und IE7 wird ebenfalls nicht mehr die neue FB Timeline erleben. WDKK wird ab sofort den Support für IE6 & IE7 einstellen und keine Designs mehr an diese Versionen anpassen. Siehe auch: Microsoft feiert Ende des Internet Explorer 6

Cleanup Script für Debian

Nachdem ich ungern alles per hand mache, hab ich mir mal nen script geschrieben, dass die logfiles und den Ram-Cache leert. Dabei wird zuerst das logrotate ausgeführt und danach werden die .gz datein gelöscht.   #!/bin/bash sync echo 3 > /proc/sys/vm/drop_caches cat /dev/null > /var/log/messages cat /dev/null > /var/log/wtmp cat /dev/null > /var/log/maillog cat /dev/null > /var/log/apache2/error.log cat /dev/null > /var/log/xferlog logrotate -f /etc/logrotate.conf find /var/log/ -name ‘*.gz’ -exec rm “{}” \; find /var/log/ -name ‘*.1’ -exec rm “{}” \; find /var/log/ -name ‘*.0’ -exec rm “{}” \;