Hallo Leute,
ich habe in meiner Anwendung mehrere Eingabefelder für Text, die größtenteils in einer DB gespeichert werden.
Ich möchte diese Felder jetzt mit Validatoren versehen, um evtl. schädliche Eingaben abzuhalten.
Meine Idee ist, dazu einen RegualarExpression Validator zu benutzen.
Welche Regular Expression sollte ich dafür verwenden?
Was benutzt ihr so??
Mein Anfang war erstmal ("[^a-zA-Z0-9]")
Mehr benötige ich auch nicht, zusätzlich noch die normal gebräuchlichen sonderzeichen. K. A. ob die darin jetzt schon enthalten sind?
Wäre super wenn ihr eure RE´s posten könntet.
Wenn dus mit regex machen willst, musst du diese lernen, darum wirst du nicht drumherum kommen. Höchsten vielleicht wenn alle deine regex in regexlib.com vorhanden sind 😉
In deinem regex sind keine Sonderzeichen erlaubt. Soweit ich weiss gibt es aber nur einen RegexValidator von ASP.Net...
Original von Chris06
Mein Anfang war erstmal ("[^a-zA-Z0-9]")
In diesem Pattern sind keine Buchstaben und keine Zahlen erlaubt. Das ist ja für eine Eingabevalidierung nicht gerade fürderlich... =) du meinst wahrscheinlich
[a-zA-Z0-9], oder?
Gruß
Ja ich weiss, das prüft den umgedrehten Fall.
Man kann es ja so oder so drehen.
Also zur Zeit habe ich
[a-zA-Z0-9]*
Man könnte jetzt vllt. anfangen ?! usw. einfach dran zu hängen.
[a-zA-Z0-9!?&%$.,:warn:\*
aber ob das so schön ist?
//edit: c#-code-tags ergänzt!! (gab smiley ersetzungen 😉 )
Benutzt das denn keiner von euch???
Ich dachte hier kommt eine Sammlung von Vorschlägen.
Ich benutze regex nur behersche ich es nicht. Genau wie du. Ich verstehe für was ich sie sinnvoll einsetzen kann und brauche sie da auch. Z.B. Telefonnummern validieren, Kreditkartennummern etc. Für alles wo's keinen Datentypf für gibt und trotzdem spezielles Format verlangt wird halt 😉
Für die meisten Anwendungsfälle gibst schon fertige Regex im web. Den Rest musst du eben lernen.
Damit wir dir mit deinem Regex weiterhelfen können müssten wir wissen was der denn genau validieren soll?
Original von Chris06
Benutzt das denn keiner von euch???
Doch, natürlich. Was genau möchtest Du denn validieren und was genau sind für Dich "schädliche Eingaben"?
ich möchte ganz normale Eingabefelder validieren, in denen Text steht.
Es geht mir dabei nicht darum die Form oder den Inhalt zu prüfen, sondern ich möchte verhindern das jmd durch anhängen von SQL Code (SQL Injection) meine Datenbank manipulieren kann.
Und da wollte ich mal hören, wie das andere machen?
Hallo Chris06,
in diesem Fall solltest Du Dich mit parametisierten SQL-Anweisungen beschäftigen.
Ich habe bei meinen Abfragen usw immer mit Parametern gearbeitet.
Ausserdem benutze ich ausschließlich Stored Prodedures um zu schreiben.
Dann habe ich mir ja eigentlich umsonst sorgen gemacht und brauche keine validierung mehr, oder?
Der Sicherheit wegen nicht nein. Natürlich solltest du darauf achten, dass Cross-Site-Scripting Attacken nicht mehr möglich sind. Also deine Ausgaben immer schön codieren, sofern es Usereingaben sind.