Reguläre Ausdrücke überprüfen

Den Test bestehen

Ein wichtiges Paradigma bei der Entwicklung von Software, insbesondere von Webanwendungen, ist die sorgfältige Überprüfung von Benutzereingaben vor der weiteren Verarbeitung. Viel kann schief gehen, wenn die Eingaben nicht sorgfältig überprüft werden. SQL-Injection oder Cross-Site-Scripting-Angriffe sind nur die bekanntesten Beispiele. Für die Überprüfung von Benutzereingaben eignen sich reguläre Ausdrücke. Aber auch diese sind anfällig für Angriffe. Der Security-Tipp in diesem Monat zeigt Wege zum Umgang mit regulären Ausdrücken.
Kommerzielle Software von der Stange oder quelloffene Produkte, die lizenzkostenfrei und flexibler sind, dafür aber oft entsprechendes Know-how voraussetzen? ... (mehr)

Um Benutzereingaben vor der Verarbeitung zu überprüfen, haben sich reguläre Ausdrücke etabliert. Mit diesen können Sie erlaubte Eingaben beschreiben und überprüfen und so bestimmte Zeichen, etwa solche, die in der Anwendung eine spezielle Funktion haben, als Eingabe verhindern. Leider können manche reguläre Ausdrücke dennoch bei bestimmten Eingaben ein unerwünschtes Verhalten verursachen und das Programm wie bei einem Denial-of-Service-Angriff unbenutzbar machen.

Ein regulärer Ausdruck beschreibt eine reguläre Sprache. Gemeinsam mit einem regulären Ausdruck entwickeln Sie also die Sprache, die Sie als Eingabe für eine Anwendung akzeptieren möchten. Als einfaches Beispiel eignen sich E-Mail-Adressen. Der folgende reguläre Ausdruck ist die Empfehlung des World-Wide-Web-Consortiums für die Sprache der E-Mail-Adressen:

^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$

Wenn Sie zum ersten Mal eine Zeichenkette wie diese sehen und die Semantik nicht direkt durchschauen, ist das kein Problem. Reguläre Ausdrücke bilden nämlich eine Sprache, die zum Glück einfach zu verstehen ist. Die beiden Zeichen "^" und "$" beschreiben den Start beziehungsweise das Ende einer Eingabe. In diesem Fall darf also außer der E-Mail-Adresse kein weiterer Wert in der Eingabe vorhanden sein. Die runden Klammern "(" und ")" bilden dabei Gruppen, die eckigen Klammern "[" und "]" bilden Klassen erlaubter Zeichen. Die erste Klasse in dem Beispiel besteht aus "a-z" (diese Abkürzung entspricht allen Kleinbuchstaben), "A-Z" (allen Großbuchstaben), "0-9" (allen Ziffern) und den zusätzlich angegebenen Sonderzeichen.

Nach der schließenden eckigen Klammer finden Sie vor dem "@"-Zeichen noch ein "+". Stehen das "?", "+" oder "*" hinter einer Gruppe oder Klasse, definieren sie

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019