Seite 1 von 1

parameter prüfen

Verfasst: Mo 12.Feb, 2007 21:24
von bce
wie prüfe ich am besten parameter

Code: Alles auswählen

$_POST['irgendwas']
das kein schädlicher code enthalten ist?


wenn $_POST['irgendwas'] eine zahl sein soll, dann evtl mit:

Code: Alles auswählen

if ((isset($_GET['irgendwas'])) and (is_numeric($_GET['irgendwas']))) { 

wenn der parameter ein string ist:

Code: Alles auswählen

if ((isset($_POST['irgendwas'])) and (is_string(strip_tags($_GET['irgendwas'])))) { 
oder denke ich zu kompliziert?

Verfasst: Mo 12.Feb, 2007 22:41
von oxpus
Wenn Du eine Zahl übergeben willst, lese diese aus und wandele sie mit intval() um. Dann ist garantiert kein gefährlicher Code mehr enthalten.
Bei allem anderen wäre zu prüfen, ob PHP-Systembefehle enthalten sind.
Also SQL, CMD, COPY, SHELL, etc...
Der Cracker Tracker von Cback macht das ja z. B. so (es gibt übrigends auch eine Stand Alone Version davon ;) ).
Strings sollten auch mit addslashes() und htmlspecialchars() umgewandelt werden. is_string() liefert jedoch immer ein false, da alles zunächst als String übernommen wird. PHP unterscheidet eben nicht immer zwischen numerischen und alphanumerischen Variablen...