2nd
Aktives Mitglied
Thread Starter
- Dabei seit
- 25.07.2004
- Beiträge
- 9.018
- Reaktionspunkte
- 245
Moin,
mich würde mal interessieren, wie Ihr folgenden sicherheitsrelevanten Sachverhalt seht:
Ich übergebe numerische Werte auf einer Website via GET-Parameter, also z. b. 0 - x. Nun stehen mir ja verschiedene Mittel und Wege der Validierung dieses Parameters zur Verfügung, bevor ich damit weiterarbeite, z. B. für eine Datenbankabfrage.
Auf dem Server sind die magic_quotes_gpc AUS.
Der naheliegendste Weg ist sicher der folgende: Ich filtere alles, was nach Sonderzeichen (", ' usw.) und Tags aussieht raus, da ich nichts von dem Zeug in dem Parameter drin haben will:
Damit wird alles ungültig, was nach XSS oder XQL-Injection aussieht.
Nun wollte ich mal wissen, wie das sich mit "casten" verhält, sprich ich mach eine Typenumwandlung wie folgt:
Damit bekomme ich bei Nicht-Integerwerten eine 0 als Ergebnis. Sieht also auch soweit gut aus. Rutscht mir damit was durch die Validierung?
Danke,
2nd
mich würde mal interessieren, wie Ihr folgenden sicherheitsrelevanten Sachverhalt seht:
Ich übergebe numerische Werte auf einer Website via GET-Parameter, also z. b. 0 - x. Nun stehen mir ja verschiedene Mittel und Wege der Validierung dieses Parameters zur Verfügung, bevor ich damit weiterarbeite, z. B. für eine Datenbankabfrage.
Auf dem Server sind die magic_quotes_gpc AUS.
Der naheliegendste Weg ist sicher der folgende: Ich filtere alles, was nach Sonderzeichen (", ' usw.) und Tags aussieht raus, da ich nichts von dem Zeug in dem Parameter drin haben will:
PHP:
if (isset($_GET['parameter'])) $parameter = mysql_real_escape_string(strip_tags($parameter));
oder durch
if (isset($_GET['parameter'])) $parameter = htmlentities(strip_tags($parameter), ENT_QUOTES);
Damit wird alles ungültig, was nach XSS oder XQL-Injection aussieht.
Nun wollte ich mal wissen, wie das sich mit "casten" verhält, sprich ich mach eine Typenumwandlung wie folgt:
PHP:
if (isset($_GET['parameter'])) $parameter = (int)$_GET['parameter'];
Damit bekomme ich bei Nicht-Integerwerten eine 0 als Ergebnis. Sieht also auch soweit gut aus. Rutscht mir damit was durch die Validierung?
Danke,
2nd