Laden...

Eingabevalidierung und Sicherheit

Erstellt von Chris06 vor 17 Jahren Letzter Beitrag vor 17 Jahren 4.385 Views
C
Chris06 Themenstarter:in
130 Beiträge seit 2006
vor 17 Jahren
Eingabevalidierung und Sicherheit

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.

B
249 Beiträge seit 2005
vor 17 Jahren

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...

F
722 Beiträge seit 2005
vor 17 Jahren

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ß

C
Chris06 Themenstarter:in
130 Beiträge seit 2006
vor 17 Jahren

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 😉 )

C
Chris06 Themenstarter:in
130 Beiträge seit 2006
vor 17 Jahren

Benutzt das denn keiner von euch???

Ich dachte hier kommt eine Sammlung von Vorschlägen.

B
249 Beiträge seit 2005
vor 17 Jahren

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?

1.130 Beiträge seit 2005
vor 17 Jahren

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"?

C
Chris06 Themenstarter:in
130 Beiträge seit 2006
vor 17 Jahren

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?

1.130 Beiträge seit 2005
vor 17 Jahren

Hallo Chris06,

in diesem Fall solltest Du Dich mit parametisierten SQL-Anweisungen beschäftigen.

N
750 Beiträge seit 2004
vor 17 Jahren

hast du schonmal im Forum nach SQL-Injection gesucht, vielleicht findest du da ja was ??

?( wer suchet, der findet auch! :]

C
Chris06 Themenstarter:in
130 Beiträge seit 2006
vor 17 Jahren

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?

B
249 Beiträge seit 2005
vor 17 Jahren

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.