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