O'Reilly logo

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren by Stefan Esser, Christopher Kunz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

9 Variablenfilter mit ext/filter204
Die Unterscheidung zwischen privaten und reservierten Netzen
liegt in der Vergabepolitik für IP-Adressen begründet. Während die
IANA (die Internet Assigned Numbers Authority) einige Subnetze aus
dem IPv4-Adressraum von vorneherein zur Nutzung durch private
Netze, also firmeninterne bzw. Haus-Netzwerke, reserviert hat, sind
andere für die spätere Nutzung reserviert und damit auch nicht über
das Internet zugänglich. Einige Sonderadressen wie
0.0.0.0 und
255.255.255.255 haben administrative Funktion und sind – obgleich
syntaktisch gültig – ebenfalls als reservierte Netzwerke anzusehen.
Um solche Adressen zu filtern, übergeben Sie die beiden Flags
FILTER_FLAG_NO_RES_RANGE – um reservierte Netzwerke auszuschließen
FILTER_FLAG_NO_PRIV_RANGE – um private Netze auszuschließen
Ein Filterausdruck, der private und reservierte Netze nicht zulässt,
sähe wie folgt aus:
filter_var("0.0.0.0", FILTER_VALIDATE_IP,array("flags" =>
FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE |
FILTER_FLAG_NO_RES_RANGE));'
Dieser Funktionsaufruf würde den Wert FALSE zurückliefern, denn die
spezielle IP-Adresse
0.0.0.0 gilt als Teil eines reservierten Netzwerks.
9.9 Syntaxcheck für E-Mail-Adressen
Mit E-Mail-Adressen verhält es sich ähnlich wie mit IP-Adressen: Ist
die Adresse syntaktisch korrekt, heißt das noch lange nicht, dass sie
auch existiert und erreichbar ist. Dank der überhandnehmenden Ver-
breitung von Spam wechseln viele Benutzer im Wochen- oder
Monatstakt ihre Mailadresse, und es gibt keine Möglichkeit, eindeutig
zu prüfen, ob eine alte Adresse noch existiert – außer, Sie senden eine
Mail dorthin und zwingen den Nutzer, zu reagieren. Diese Methode
wird heutzutage von praktisch jeder Anwendung, die eine gültige E-
Mail-Adresse voraussetzt, genutzt und ist in Kapitel 6 beschrieben.
Um jedoch auszuschließen, dass Ihre Anwendung sich von ungülti-
gen Mailadressen in die Irre führen lässt, existiert der Filter
FILTER_VALIDATE_EMAIL. Er wird ohne Flags oder Optionen verwendet
und prüft die korrekte Syntax, nicht aber die Erreichbarkeit. Möchten
Sie diese testen, führt kein Weg am Versand einer E-Mail vorbei – alle
anderen Ansätze (etwa über die Abfrage der MX-Einträge einer
Domain oder Ähnliches) sind nur Notlösungen.
Eine Syntaxprüfung für Mailadressen wird wie folgt durchgeführt:
filter_var("chris@php-sicherheit.de", FILTER_VALIDATE_EMAIL);

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required