2012-04-09 11 views
1

Ich bin ein bisschen neu, wenn es um Sicherheit geht, ich habe gelesen php crypt und auf der Suche nach guten Rat, obwohl niemand wirklich ins Detail geht über "wie" Sie gehen es am effektivsten zu tun.bcrypt mit Salz wie?

Ich habe einen Test-Login, die so etwas wie dies verwendet:

//verify login from user input 
$username = mysql_real_escape_string($_POST['username']); 
$salt = '$2a$10$cdDegHjJLPUvVXYz23679.MOetNHBk9NTStpY9YjJWiL5ECfhHlSm'; 
$password = crypt(mysql_real_escape_string($_POST['password']), $salt); 

(Ich bin sicher, es gibt viel ich ändern müssen sie vollständig sicher zu machen (zB Passwort-String-Länge) beschränken bitte erleuchte mich mit irgendetwas sonst denkst du, wäre von guter Praxis)

Ich lese irgendwo, dass es ideal ist, um ein zufälliges Salz zu machen und es mit dem Passwort zu speichern, (ich verstehe das Konzept der Überprüfung einer Nummer, die sich nicht darauf bezieht, nicht völlig das Passwort)

Th de Ich habe irgendwo gelesen, dass es sinnlos ist, ein zufälliges Salz zu machen, weil es die Sicherheit nicht erhöht, und dass ein statisches Salz das selbe tun würde.

Ich sah dies tutorial mit einem zufälligen Salz mit $ _GET. (Sagen Sie mir, das ist nicht richtig)

Kann mir jemand in die richtige Richtung zeigen, um meine bcrypt so effektiv wie möglich zu machen.

Dank

+0

"Sag mir, das ist nicht richtig" - welcher Teil? –

+1

Bitte verwenden Sie nicht blind mysql_real_escape_string überall. Es sollte nur verwendet werden, um Strings für Abfragen zu umgehen (und es sollte auf jeden Fall vermieden werden, Sie sind sicherer, wenn Sie vorbereitete Anweisungen verwenden, und sie sind leichter für Anfänger geeignet). Und ja, Sie sollten ein zufälliges Salz pro Benutzer verwenden. – knittl

Antwort

1

Siehe meine alte Antwort auf diesen Thread über here. Es gibt einen interessanten Artikel und einen Link zu phpass.

+0

Danke, ich bin schon mal darauf gestoßen. Es sieht gut aus, obwohl ich meine Hände schmutzig machen will, damit ich weiß, wie ich es ohne Hilfe machen kann. – Undefined

+0

Eddy überall, wo ich hingehe Ich komme immer wieder auf http://www.openwall.com/phpass/. (Ich liege falsch wegen der Hände schmutzig Ding), ich sollte über Sicherheit lernen, obwohl ich nicht meine eigene Implementierung verwenden sollte Ich sollte jemand use getestet System für ernsthafte Projekte zu verwenden, wie ich nie ein Experte über Nacht werden. – Undefined

+1

@Julien Etienne - Nein, du hast Recht, du solltest deine Hände schmutzig machen, und sobald sie schmutzig genug sind, kannst du eine Bibliothek benutzen. Oft genug habe ich am Ende Beispiele geschrieben, ich habe im Internet Tonnen von Artikeln erwartet, - ich habe sie nicht gefunden, weil niemand die Hände schmutzig machen will. – martinstoeckli

1

Verwenden eines zufälligen Salz für jedes Passwort ist wichtig. Die PHP-Implementierung der crypt()-Funktion fügt sie automatisch in den resultierenden Hash-Wert ein, so dass es kein Problem gibt, wo sie gespeichert wird, aber sie sollte korrekt aus einer zufälligen Quelle generiert werden.

Ich schrieb eine kleine article about bcrypt in PHP, weil ich denke, es ist wichtig, dass man versteht, wie die Funktion funktioniert. Sobald wir es verstanden haben, können wir eine gut etablierte Bibliothek wie phpass verwenden.