Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfe bei einer RegEx

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hilfe bei einer RegEx

    Hallo,

    ich versuche eine RegEx zu erstellen, welche folgende Bedingung abbildet:
    • min 8 Zeichen
    • min ein Großbuchstabe
    • min ein Kleinbuchstabe
    • min eine Ziffer
    • min eines der Sonderzeiche aus Liste (#,-_@§$)
    Dazu hab ich folgenden Code
    Code:
    ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#\,\-\_@§$])[\S].{7,}$
    Das klappt bis auf den Whitespace, ich kann einen Whitespace einfügen (Beispielstring: 1Aa#0 00) und bekomme trotz
    Code:
    ...[\S]...
    ein Match

    Wie muss der Ausdruck aufgebaut sein, damit er greift?

  • #2
    Also ich würde bei solchen Dingen ja entweder mit PHP direkt step by step prüfen (zB mit MethodChaining)

    PHP-Code:
    $isOk $s
        
    ->hasMinLength(8)
        ->
    hasAnUpperCaseLetter()
        ->
    hasAnLowerCaseLetter()
        ->
    hasADigit()->....; 
    oder

    PHP-Code:
    ->hasOneOfThemarray_mergerange('a','z'), range('A','Z'), range(0,9) )) 
    etc..

    Oder sowas hier nutzen: https://github.com/VerbalExpressions...balExpressions

    Da braucht man ewig für die Formulierung und dann hat man ev. noch eine Lücke drinnen die man so in dem ganzen Ausdrucks-Wulst gar nicht erkennen kann. Denk naben der Fehlerquelle auch an die Wartung so eines Audruckes.

    EDIT: Oder bau dir einfach eine kleine Funktion die bei deim ersten nicht zutreffen false zurückgibt (Wächter-Prinzip) und wenn alles durchläuft dann true.
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Zitat von hausl Beitrag anzeigen
      Also ich würde bei solchen Dingen ja entweder mit PHP direkt step by step prüfen (zB mit MethodChaining)...
      Das geht, aber ich will ja gleich die HTML5 Validierung mitnehmen, Stichwort FormType Symfony.

      Im jeden Fall hab ich jetzt eine Lösung:
      Code:
      ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\#\,\-\_\@§$])[\S]{8,}$
      Danke

      Kommentar


      • #4
        Zitat von rammi Beitrag anzeigen
        ich versuche eine RegEx zu erstellen, welche folgende Bedingung abbildet:
        • min 8 Zeichen
        • min ein Großbuchstabe
        • min ein Kleinbuchstabe
        • min eine Ziffer
        • min eines der Sonderzeiche aus Liste (#,-_@§$)
        So sahen die Passwörter vor 20 Jahren aus (=> https://www.xkcd.com/936/). Stand der Technik ist das aber schon lange nicht mehr (=> https://nakedsecurity.sophos.com/201...-need-to-know/).

        Kommentar


        • #5
          Das ist aber nur als Eingabehilfe für den User gedacht. Du muss das serverseitig auch noch prüfen, validieren, ein Request kann nicht nur von deinem Form kommen. "Formulardaten" sind generell immer auch serverseitig zu validieren. https://php-de.github.io/jumpto/sicherheit/
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Zitat von hausl Beitrag anzeigen
            ...Du muss das serverseitig auch noch prüfen, validieren, ein Request kann nicht nur von deinem Form kommen....
            Genau das passiert mit dem o.g. FormType

            Kommentar


            • #7
              Warum macht man so einen Quatsch?

              https://www.futurezone.de/digital-li...digt-sich.html

              Kommentar


              • #8
                Zitat von hellbringer Beitrag anzeigen
                Warum macht man so einen Quatsch?...
                Anforderungen ausserhalb meines Kompetenzbereiches

                Kommentar


                • #9
                  Evtl passender Sidekick zum Thema: https://blog.mozilla.org/security/20...windows-hello/

                  Kommentar

                  Lädt...
                  X