201011Jul

Webentwicklung: GET- und POST-Daten ab PHP 5.2

Das Filtern von GET- oder POST-Daten, die über PHP eingelesen werden (per "$_GET" oder "$_POST"), stellt einen wichtigen Aspekt für die Absicherung von PHP-Anwendungen dar. Eingehende Daten, die von Benutzern stammen (etwa bei Formularen), müssen durch verschiedene Funktionen gefiltert werden (Escaping), um möglichen Angriffen vorzubeugen. Wer auf PHP 5.2 zurückgreifen kann, sollte sich zu diesem Thema den Artikel bei php|architect ansehen. Darin wird beschrieben, wie sich das eingebaute Filter-System von PHP nutzen lässt, um GET- und POST-Daten sicher zu filtern.

php|architect - Never Use $_GET Again

Die Funktionen werden mit "filter_input()" oder "filter_input_array()" aufgerufen und können genutzt werden wie folgt:

  • <?php
  • $string = filter_input(INPUT_GET, "string", FILTER_SANITIZE_STRING);
  • ?>

Mit dem Parameter "FILTER_SANITIZE_STRING" werden die Daten also von ungewünschten Zeichen befreit, die üblicherweise mit "stripslashes()", "strip_tags()", "htmlentities()" oder "htmlspecialchars()" gefiltert werden müssen. Neben der Option "INPUT_GET" sind zudem die Angaben "INPUT_POST", "INPUT_SERVER", "INPUT_COOKIE" oder "INPUT_ENV" möglich.

Kommentarfunktion für diesen Artikel geschlossen.