Eine wichtige Massnahme gegen Angreifer ist die Validierung jeglichen Inputs, der in einer Webapplikation eingegeben werden kann. Für die Inputvalidierung gibt es zwei Vorgehen: Entweder mit einer Blacklist oder mit einer Whitelist.
Blacklist bedeutet, man stellt eine Liste von Symbolen zusammen, die der User >nicht< eingeben darf.
Whitelist bedeutet, man erstellt eine Liste von Symbolen, welche der User eingeben darf.
Eine vollständige Blacklist ist dabei viel schwerer zu machen als eine Whitelist. Nimmt man etwa einen Benutzernamen, sind gültige Zeichen die Buchstaben A-Z in Gross- und Kleinschreibung sowie vielleicht noch ein Underscore. Dies zu validieren ist viel einfacher, als auf alle Zeichen zu prüfen, welche nicht vorkommen. Dies kann einfach mit einem regulären Ausdruck passieren. Auch die Mischung von Black- und Whitelist macht nicht viel Sinn: Wenn ich bereits festgestellt habe, welche Symbole der Benutzer eingeben darf, muss ich nicht noch zusätzlich sagen, welche er nicht darf.
Aus diesem Grund sollte man praktisch immer eine Whitelist für die Inputvalidierung erstellen.