PHP absichern
So wird PHP sicherer
Misstrauen Sie Nutzereingaben
Robots und Angreifer werden stets versuchen, in URLs, Funktionsaufrufen oder Formularfeldern Code einzuschleusen, um herauszufinden, wie die PHP-Anwendung reagiert. Die wichtigste Regel ist das Misstrauen gegenüber Benutzereingaben. Akzeptieren Sie nur Eingaben, die Sie geprüft haben. Das macht mehr Arbeit bei der Entwicklung, erhöht aber die Sicherheit.
Ein Beispiel: Ein Formular, in das der Nutzer sein Geburtsdatum eintragen soll, erlaubt Tag und Monat jeweils zweistellig und eine vierstellige Jahresangabe. Alles andere ist nicht erlaubt. Diese Angaben müssen nun geprüft werden. Dazu bedienen Sie sich regulärer Ausdrücke. Der Umgang damit fällt Einsteigern nicht ganz leicht, weil nicht nur die Syntax erlernt werden will, sondern zuerst die passende Bedingung gefunden werden muss, die dann dargestellt werden soll. Überprüfen Sie also bei allen Eingaben des Nutzers in Form von „POST“ oder „GET“ die erlaubten Zeichen und die Länge der Eingabe. Eine Validierung für das genannte Beispiel sieht im Prinzip so aus:
if (! preg_match("/^[0-9]{1,2} $/", $_GET['tag']))
{
// Fehlermeldung
}
if (! preg_match("/^[0-9]{1,2} $/", $_GET['monat']))
{
// Fehlermeldung
}
if (! preg_match("/^[0-9]{4} $/", $_GET['jahr']))
{
// Fehlermeldung
}
Wenn Sie diese Maßnahmen bei der Entwicklung eigener Scripts und der Konfiguration des Servers berücksichtigen, haben Sie prominente Einfallstore von Hackern und Datendieben erfolgreich geschlossen.
(PC-Welt/ad)