öffentlich
Redaktion Druckversion

Wo plausibilisieren sich Formular-Daten am besten?

Welche Daten sollen überprüft und welche Abhängigkeiten sind dabei zu berücksichtigen?

5
(2)
Beitrag bewerten
Ersten Kommentar schreiben
Stand: 13. März 2007

Plausibilisierung von Webformularen

Das Plausibilisieren der Eingaben in Webformulare ist alles andere als trivial. Dieser Artikel erklärt, wie sie ein Plausibilisierungskonzept für Formulareingaben entwickeln. Dazu muss zunächst geklärt werden, welche Daten überprüft werden sollen und welche Abhängigkeiten dabei zu berücksichtigen sind. Außerdem stellt sich die Frage, wo Plausibilisierung Sinn macht: per JavaScript beim Client, mit einer Scriptsprache auf Server-Seite oder auch in der Datenbank?

Im zweiten Teil dieser kleinen Reihe zur Plausibilisierung von Formular-Daten geht es um die Überprüfung der in ein Webformular eingegebenen Daten per JavaScript direkt beim Client: "Formulardaten mit Javascript plausibilisieren".

Wenn Anwender in einem Webformular Daten eingeben und zum Server schicken wollen, sollten diese in vielen Fällen gewissen Plausibilitäten genügen. Allerdings ist es im Gegensatz zu eigenständigen PC- und Host-Applikationen im Web in der Vergangenheit lange Zeit üblich gewesen, dass viele Webformulare nicht korrekt plausibilisiert wurden. So war es vor nicht allzu langer Zeit durchaus üblich, dass man in Onlineshops Produkte auswählen und diese Bestellung mit einer negativen Bestellmenge abschicken konnte. Und es gab sogar mehrere Fälle, bei denen die nachfolgenden Transaktionen ungeprüft durchgeführt wurden. Das bedeutete mit anderen Worten, dass der Besteller einer Ware für diesen Fall Geld überwiesen bekam. Man muss aber nicht so drastische Beispiele anführen, um deutlich zu machen, dass Eingaben in einem Webformular möglichst plausibel sein sollten.

Was versteht man unter der Plausibilisierung von Webformularen?

Das Plausibilisieren eines Webformulars bedeutet erst einmal ganz allgemein, die Schlüssigkeit von Anwendereingaben zu kontrollieren und bei Widersprüchen zu den geforderten Vorgaben Gegenmaßnahmen zu ergreifen. Dies sollte man möglichst schon vor einem Versenden der Daten durchführen. Das gesamte Prozedere ist jedoch alles andere als trivial und die wesentlichen Dinge betreffen nicht die Programmierung selbst. Plausibilisierung von einem Webformular ist nur als globales Konzept schlüssig, das auch die Weiterverwendung der Daten nach dem Versenden beinhalten muss.

Welche Problemstellungen müssen beachtet werden?

Bei der Plausibilisierung von einem Webformular müssen Sie sich zahlreicher Problemstellungen bewusst werden. Diese kann man über einige Fragen recht pauschal zusammenfassen:

  1. Was muss plausibilisiert werden?

  2. Welche Abhängigkeiten gibt es?

  3. Wie genau muss plausibilisiert werden?

  4. Wann wo und wie wird plausibilisiert?

Die Fragestellungen 1 bis 3 müssen in der Regel zusammen betrachtet werden und lassen sich natürlich nicht pauschal beantworten. Grundsätzlich wird das genaue Vorgehen von der Programmlogik, den Anforderungen desjenigen, der mit der Applikation umgehen muss und der Realisierungsmöglichkeit bestimmt. Betrachten Sie als Beispiel den bereits angedeuteten Onlineshop. Ein solcher Shop besteht in der Regel als Frontend für den Besucher im Wesentlichen aus einer Gruppe mit Webformularen zur Eingabe einer Bestellung. Die Webformulare rufen Skripte beziehungsweise Programme auf dem Webserver auf. Dabei werden die Benuterzeingaben samt weiteren notwendigen Daten an den Server übermittelt. Ein Onlineshop besitzt zusätzlich meist eine angeschlossene Datenbank und darauf aufbauende Transaktionsrealisierung.

Für ein korrektes Funktionieren des Onlineshops ist es klar, dass selbstverständlich nur schlüssige Daten eine reibungslose Bestellung gewährleisten. So müssen beispielsweise eine vollständige Adressinformation und eine vollständige (und korrekte) Bestellinformation vorhanden sein, bevor eine Bestellung als Aktion auch ausgeführt werden kann. Und die schon angedeutete negative Bestellmenge bei freier Eingabe muss selbstverständlich auch abgefangen werden.

Woher kommen die Probleme bei Webapplikationen?

Bei einer Webapplikation spielen verschiedene Schichten zusammen, die in der Regel von verschiedenen Leuten erstellt und betreut werden. Neben dem Frontend zur Entgegennahme der Benutzereingaben auf dem Client gibt es die Serverseite mit einer Programmierebene und meist auch einer Datenbankebene (und gegebenenfalls einer Weiterleitung zur tatsächlichen Transaktionsebene).

Datenbanken selbst als auch die folgenden Transaktionstechniken sind in der Regel sehr professionell konzipiert, programmiert sowie plausibilisiert. Die Entgegennahme der Daten von der Client beziehungsweise die direkte Verarbeitung auf der Webserverseite ist dagegen nicht immer so professionell gemacht. Das liegt sicher auch daran, dass sowohl die Datenbank als auch die Transaktionsprogrammierung in einem professionellen Umfeld von gut ausgebildeten Programmieren umgesetzt wird beziehungsweise werden muss, während sich an einem Webformular (und auch an der Programmierung des Webservers über Servertechnologien wie PHP) vielfach "Programmierlaien" versuchen, denen dann in der Regel auch kein professionelles Umfeld mit Konzeption, Test, etc. zur Seite steht. Dabei soll der Begriff "Programmierlaien" nicht abwertend gemeint sein. Aber wenn ein Designer von Webseiten quasi nebenher Programmlogik umsetzen muss, kann er normalerweise einfach dieses Wissen nicht haben, das ein professioneller Programmierer oder Datenbankadministrator hat.

Was sollte bei einer Webapplikation plausibilisiert werden?

Wie weit Sie die Schlüssigkeit von Daten bei einer Webapplikation prüfen und was Sie plausibilisieren sollten, ist nun nicht pauschal zu sagen. Reicht es etwa bereits für eine schlüssige Applikation, dass alle relevanten Felder (Name, Vorname, PLZ, Ort, Straße) in einem Webformular gefüllt sind?

Bild vergrößernScreenshot 1

Und welche Felder sind bei einem Formular überhaupt relevant? Die Kundennummer, das Geburtsdatum, die Telefonnummer, die E-Mail-Adresse oder welche Felder noch? Gibt es Mindestlängen für eine Eingabe?

Bild vergrößernScreenshot 2

Und müssen die Felder bezüglich ihres Inhaltes schlüssig sein? Das umfasst beispielsweise elementare Fragen, ob eine E-Mail-Adresse etwa immer das Zeichen @ enthalten muss, ob ein Passwort neben Buchstaben auch Zahlen enthalten muss, ob ein Geburtsdatum nach Tagesdatum liegen kann oder ob eine Bestellmenge Null oder gar negativ sein darf?

Bild vergrößernScreenshot 3

Und wie weit prüft man die Schlüssigkeit? Insbesondere unter Berücksichtigung von Abhängigkeiten von Daten beziehungsweise überhaupt der Erkenntnis und Auswahl, welche Felder von einander abhängen können. Das kann (und muss teilweise) soweit gehen, dass beispielsweise Beziehungen zwischen dem Geburtsdatum und dem Tagedatum berechnet und mit einem Grenzwert verglichen werden. Oder die Beziehung zwischen dem eingegebenen Name und der Kundennummer wird kontrolliert. Sehr oft wird die Gültigkeit von PLZ und Ort überprüft und ob die Angaben zusammenpassen. Auch die Frage, ob eine angegebene Straße in dem angeführten Ort überhaupt vorhanden ist, lässt sich kontrollieren. Theoretisch kann ein Plausibilisierungskonzept sogar so weit gehen, die Schlüssigkeit zwischen einem Vornamen und dem Geschlecht zu prüfen.

Sie sehen, dass man bei einem Plausibilisierungskonzept vom Stock zum Stöckchen kommen kann und dabei nicht unbedingt die logische Bodenhaftung verlieren muss. Hier eine vernünftige Abwägung zwischen notwendigen Prüfungen, deren tatsächlicher Umsetzung und realisierbarem Aufwand zu finden, ist alles andere als einfach und treibt manche Projektmeetings in die Krise. Es ist auf jeden Fall so, dass die Planung von einem professionellen Webauftritt mit solch einer Benutzerinteraktion samt Plausibilisierung ein Vielfaches (!) der Zeit in Anspruch nimmt, die in der Folge die konkrete Umsetzung benötigt.

Wo und wie sollte eine Webapplikation plausibilisiert werden?

In einer Standalone-Applikation ist es klar, dass sich die Applikation auch um die Plausibilisierung der gesamten Logik zu kümmern hat. Bei Client-Server-Applikationen beziehungsweise allgemein verteilten Applikationen ist das nicht so klar. Die Plausibilisierung kann der Client erledigen, der Server oder - falls vorhanden - irgendeine beziehungsweise mehrere Schicht(en) einer verteilten Anwendung. Reduzieren wir die Problematik auf eine einfache Client-Sever-Beziehung wie unsere besagte Webapplikation.

Beitrag bewerten

Ihre Wertung:

 

Mitglied werden, Vorteile nutzen!

  • Sie können alles lesen und herunterladen: Beiträge, PDF-Dateien und Zusatzdateien (Checklisten, Vorlagen, Musterbriefe, Excel-Rechner u.v.a.m.)
  • Unsere Autoren beantworten Ihre Fragen

Downloads zu diesem Beitrag

Newsletter abonnieren