Was ist Datenvalidierung?

In diesem Artikel geht es um Datenvalidierung. Es geht also um die Validierung von Daten, die über ein Webformular erfasst werden und an eine Datenbank weitergeleitet werden. Die Datenvalidierung dient dabei dem Datenschutz von gespeicherten Informationen in einer Datenbank.

Wenn ein Formular zur Dateneingabe im Web zur Verfügung gestellt wird, müssen alle Felder, die nicht mit festen Werten oder Auswahllisten vorbelegt sind, auf ihre Plausibiltät hin überprüft werden. Das bedeutet, dass die vom Benutzer eingegebenen Daten validiert werden müssen,also überprüft werden muss, ob die Daten einem bestimmten erwarteten Format entsprechen. All das geschieht schon bevor die Daten zur Speicherung an die Datenbank geschickt werden.

Neben der Erhöhung der Sicherheit bekommt man so durch eine gute Validierung der Eingabedaten auch eine gesteigerte Nutzererfahrung, da Falscheingaben so frühzeitig abgefangen werden.

Prinzipiell sollten alle Eingaben der Benutzer überprüft werden und durch geeignete Hinweise auf Falscheingaben hinweisen. So passiert ein Vertipper bei der E-Mail-Adresse schnell und kann ärgerlich sein, wenn dieses nicht auffällt.

Datenvalidierung im Frontend

Was ist ein Frontend? Als Frontend bezeichnet man die Präsentationsebene einer Anwendung, das ist also der Teil der Anwendung, den der Benutzer sehen kann und mit dem er interagiert.

Oft wird der Fehler gemacht, die Datenvalidierung nur im Frontend zu implementieren. Beispielsweise wird mittels JavaScript die Eingaben in einem Formular überprüft.

Sollte der Benutzer eine falsche Eingabe machen so erscheint eine Warnung mit einem Hilfetext, welches Format erwartet wird, zum Beispiel, dass in dem Feld nur eine Zahl erlaubt ist.

Aus Sicht der Benutzerfreundlichkeit ist dies super, aus der Sicherheitsperspektive bringt dies aber herzlich wenig. Ein Angreifer könnte einfach die JavaScript-Validierung deaktivieren und schon beliebige, möglicherweise boshafte Eingaben tätigen.

Datenvalidierung im frontend

Daher sollte eine Validierung stets auch im Backend erfolgen.

Validierung im Backend

Was ist ein Backend? Als Backend bezeichnet man die Datenzugriffsebene, das ist der Teil einer Applikation, der (im Gegensatz zum Frontend) nicht für den Benutzer sichtbar ist. Es beinhaltet jegliche Programmierung der Applikation und den Administrationsbereich.

Nachdem die Benutzerdaten abfragt wurden, sollte direkt die Überprüfung dieser Daten stattfinden. So wird das Risiko, dass boshafte Eingaben Schaden anrichten können, minimiert.

Verschiedene Beispiele für solche Validierungen sind:

Manchmal sind auch kompliziertere Regeln für die Überprüfung der Eingaben notwendig. In diesen Fällen kann man auf Reguläre Ausdrücke zurückgreifen.

Das Plausibilisieren von Formulareingaben im Backend

Das Plausibilisieren (auch Verifizieren genannt) eines Webformulars bedeutet also, die Schlüssigkeit der Anwendereingaben vor dem Versenden der Daten oder zumindest vor dem Eintragen in eine Datenbank zu kontrollieren und bei Widersprüchen zu den geforderten Vorgaben Gegenmaßnahmen zu ergreifen.

Dazu sollte man die folgenden Fragen beantworten:

Bei einem Plausibilisierungskonzept muß viel beachtet werden. Hier eine vernünftige Abwägung zwischen notwendigen Prüfungen, deren tatsächlicher Umsetzung und realisierbarem Aufwand zu finden, ist alles andere als einfach.

Die folgende Abbildung zeigt die Plausibilisierung von Anmeldedaten eines Benutzers als Flußdiagramm:

Flussdiagramm zur plausibilisierung von Anmeldedaten