Angenommen, ich habe ein Formularelement, das so ziemlich jede vernünftige Zeichenfolge erlauben sollte, die etwas nennt (IE wie der Titel dieser Frage).Safe Unicode String/Name
Wie validiere ich, dass die Zeichenfolge vernünftig ist und nicht etwas Seltsames oder unsicheres? (Nehmen wir an, dass so etwas wie Unicode-Emoticons sinnvoll sind)
Überprüfung auf alle Escape-Zeichen wie Zeilenumbrüche, Form Feeds usw., ist natürlich gegeben. Dinge wie Länge sind jedoch schwieriger, da ein beschreibender englischer Name mit nur einem Zeichen sehr schwierig ist, aber auf Chinesisch trivial ist.
Es gibt ~ 31 Unicode-Klassen, welche sind sicher?
Wie sieht eine vollständige Regex- oder ähnliche Überprüfung in Javascript oder C# aus?
Nur für Kontext, was ist es, dass Sie versuchen, es für sicher zu machen? Ist es sicher für das Einfügen in eine Datenbank oder für XSS oder nicht validierte Benutzereingaben? – gmiley
Alles oben genannte. – Cine
Gut, solange Sie parametrisierte Abfragen für Ihre SQL-Befehle verwenden, ist jede Eingabe gegen sql injection sicher. An diesem Punkt müssen Sie nur in Ihrer Datenbank angeben, dass die Spalte, in der Sie Daten speichern, Unicode ist. Wenn Sie Inhalte anzeigen, sollten Sie sicherstellen, dass Sie HTML-Codierungsverfahren verwenden, die in JavaScript sowie in den meisten serverseitigen Skriptsprachen verfügbar sind. – gmiley