Sonderzeichen in Passwörtern

  • Hallo zusammen!


    Beim Thema Passwörter gehen ja die Meinungen immer wieder auseinander (wie lang, welche Zeichen, usw.)


    Ich habe mich gefragt in wie fern Sonderzeichen in Passwörtern problematisch werden könnten (Stichwort: SQL-Injection)


    Auch hier gehen die Meinungen auseinander:
    Die einen sagen das PW wird ja direkt nach der Eingabe gehasht und ist deshalb ungefährlich und die anderen sagen man sollte bestimmte Zeichen im PW auf jeden Fall verbieten.


    Na was den nun? Es können ja nicht beide Seiten recht haben.


    Was meint ihr dazu?


    Grüße, Kemos


  • Na was den nun? Es können ja nicht beide Seiten recht haben.


    Warum denn nicht?


    Wenn du gleich das Passwort hasht, was kann dann passieren? Genau, nichts.


    Und wenn du es nicht hasht, dann muss du was machen? Genau, gefähliche Zeichen nicht an die SQL-Abfrage gelangen lassen und dafür gilt es den Kontextwechsel zu beachten, steht aber auch alles im PHP-HANDBUCH, welches man mindeste einmal im Leben gelesen haben sollte.
    LESEN --> http://php.net/manual/de/security.database.sql-injection.php

  • Und wenn du es nicht hasht, dann muss du was machen? [...]


    ... Sofort damit aufhören irgendwelche Passwortfunktionen zu schreiben und noch mal über die Bücher gehen. Es gibt keinen Anwendungsfall, in welchem Passwörter unverschlüsselt an die Datenbank gehen dürfen. Selbst wenn das Passwort aus irgend einem Grund wieder im Klartext benötigt wird (Proxyauth, Singe Sign In oder so) *muss* es verschlüsselt werden, einfach icht mit einem Hash sonder mit einer 2-Weg Verschlüsselung.



    Edit @Thread: In Zeiten wo Texte eigentlich Ausschliesslich in Unicode oder äquivalenten Formaten gespeichert werden gibt es eigentlich keinen Grund mehr, Sonderzeichen in Passwörtern zu verbieten. Wenn dadurch eine SQL-Injection möglich wird hast du ganz andere Probleme. Für den User kann es aber empfehlenswert sein, gewisse Zeichen zu vermeiden, sofern er mit verschiedenen Zeichenbelegungen arbeitet. Es kann genz schön nervig sein, auf einer Französischen oder UK Tastatur nach einem Sonderzeichen zu suchen. Trotzdem sollte der User die Möglichkeit haben, ein beliebig komplexes Passwort zu verwenden.


    Gruss,
    -Lukas

  • Eh, wat? Lies doch meinen Post nochmal. Ich beziehe mich auf deine Aussage "Wenn du es nicht hasht". Natürlich sind die eingebauten Hashfunktionen gut genug, so lang man mal von md5 und sha1 absieht.


    Ich hab den Zitierten text so verstanden, als werde das Passwort im Klartext gespeichert, und dafür gibt es definitiv keine Berechtigung. Falls ich dich da falsch verstanden have, Bitte zu entschuldigen ;)

  • OK, Missverständnisse auch von meiner Seite.


    Also nochmal: allen Angaben die von aussen kommen Misstrauen. Whitelist einsetzen oder Eingaben auf Plausibilität prüfen, Kontextwexhsel zu SQL beachten, Passwörter nie im Klartext in die DB speichern. UTF-8 als Zeichencodierung verwenden.


    Besser?