Meila: RegEx auf Sonderzeichen prüfen

Hallo!

Ich schreibe gerade eine Formular, welches über Perl verarbeitet wird.
So jetzt möchte ich auch Sonderzeichen prüfen, die nicth eingegeben werden sollen können (wegen Sicherheit, zB . & |)

Jetzt habe ich ein paar sachen ausprobiert, aber irgendwie schaffe ich nicth den richtigen Ausdruck dafuer zu finden.

Eingabe ist ein String bestehend aus mehreren Wörtern, übergeben mittels POST
Einer meiner Versuchen:
s/^\w+/unerlaubt/

im Gegensatz es wird die eingabe: * reden blubb / &

fröhlich ausgegeben
Muss ich jedes sonderzeichen extra überprüfen? Nein oder? das müsste doch innerhalb eines regulären Ausdrucks möglich sein.

da dachte ich, dass überall wo ein Zeichen steht, dann unerlaubt steht. Tut es aber nicht, sondern nur beim ersten Zeichen.

Kann mir jemand helfen?

Danke, Meila

  1. Hallo!

    Ich schreibe gerade eine Formular, welches über Perl verarbeitet wird.
    So jetzt möchte ich auch Sonderzeichen prüfen, die nicth eingegeben werden sollen können (wegen Sicherheit, zB . & |)

    Ich kann eingeben was ich will. Da kannst du nichts dagegen machen.

    Es geht immer im gegeben Kontext darum, das richtige zu maskieren.

    Wenn du Daten als HTML ausgibst, wirst du <>"' als Entitäten ausgeben.
    Wenn du Daten speicherst in deiner DB, müssen die Sachen maskiert werden, welche für deine DB kritisch sind.

    Du kannst aber eine Plausibilität testen, sofern das sinnvoll ist.
    Für einen Formmailer zum Beispiel halte ich es schlicht für überflüssig, ausser man will Spam verhindern.

    Angenommen du hast ein Feld "Alter" welches erwartet, dass ausschliesslich Zahlen aus [0-9] eingeben werden.

    $Input{alter} =~ /^([0-9]{1,3})$/ and $Cleaned{alter} = $1;

    Das ist die in Perl zu Taint kompatible Lösung.

    Alles weitere zu Regulären Ausdrücken sagt dir deine Doku.

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>      ><o(((°>
       <°)))o><                      ><o(((°>o