>> Inhaltsverzeichnis >> Anleitung für Entwickler

Formulardaten prüfen

Wie kann ich Nutzereingaben vor der Verarbeitung säubern?

Zu diesem Zweck bietet Ihnen YANA die Funktion untaintInput().

Die Funktion verfügt über folgende Parameter:

Parameter

Typ

Default

Beschreibung

value mixed n/a zu säuberndes Datum
type string ""

Datentyp

Neben den von PHP unterstützten nativen Typen sind noch folgende Werte erlaubt:

  • time: UTC-Zeitcode (Typ Integer, Länge 11)

  • ip: IP-Adresse (Typ String, Länge 15)

  • mail: Mailadresse (Typ String)

  • select: wird behandelt wie "string"

  • text: wird behandelt wie "string"

length integer 0 Maximale Länge des Datums
escape integer 0 siehe Tabelle

Parameterliste untaintInput

Der Parameter $escape kann mit einer der folgenden Konstanten belegt werden.

Bezeichner Beschreibung
YANA_ESCAPE_NONE keine Änderungen durchführen (Default)
YANA_ESCAPE_SLASHED wandelt einfache und doppelte Anführungszeichen in ihre entsprechenden Escapesequenzen in C-Syntax um
YANA_ESCAPE_TOKEN ersetzt enthaltene Token durch ihre HTML-Entities
YANA_ESCAPE_CODED ersetzt HTML-Symbole, beispielsweise Tagklammern, durch Entities
YANA_ESCAPE_LINEBREAK wandelt alle Whitespace-Zeichen (insbesondere Zeilenumbrüche) in Leerzeichen um
YANA_ESCAPE_USERTEXT zur Behandlung von Text aus Textarea-Feldern

Gültige Belegungen für den Parameter $escape der Funktion untaintInput

Für INPUT-Felder sollten Sie stets die Funktion untaintInput() mit dem Parameter YANA_ESCAPE_LINEBREAK aufrufen. Das verhindert, dass ein Angreifer Zeilenumbrüche in Ihre Ausgabe schmuggelt. Für TEXTAREA-Felder sollten Sie den Parameter YANA_ESCAPE_USERTEXT verwenden. Dieser verhindert viele Formen von Flooding, indem Zeichenfolgen die sich ständig wiederholen (Copy'n'Paste Flooding) entfernt werden, oder zum Beispiel ellenlange Texte oder Leerzeichen nach einer bestimmten Anzahl von Leerzeichen per Zwang umgebrochen werden, um das Layout Ihrer Seite nicht zu zerstören.

Autor: Thomas Meyer, www.yanaframework.net