Optimal Variabeln aus $_POST und $_GET abfangen

tobee

Erfahrenes Mitglied
Ich benutze für immer Benutzerangaben abzufragen eine bestimmte Zeichenfolge.
Hier ein Beispiel für die $id, die entweder über $_POST oder $_GET kommen kann.
PHP:
$id = array_key_exists ( "id" , $_REQUEST ) && !empty ( $_REQUEST['id'] ) ? htmlentities ( $_REQUEST['id'] ) : "";
Ich wollte mal fragen was ich hier noch optimieren bzw. sicherer machen könnte?

// Edit: Bitte die Überschrift von Opitmal in Optimal ändern. Danke.
 
Da es sich hier ja scheinbar um eine ID handelt gehe ich mal davon aus, dass diese numerisch ist. Somit sollte auch geprueft werden ob dies der Fall ist.
Da so eine ID dann in der Regel auch eine Ganzzahl ist, sollte auch dies ueberprueft werden. Jedoch scheidet die Funktion is_int() hier aus, denn diese scheint mit uebergebenen Werten nicht klar zu kommen.
Ich hatte hier irgendwie irgendwo irgendwann ( ;) ) mal meine Funktion is_id() gepostet, die genau dies macht, einen Wert (inklusive Uebergabewerte) auf ganzzahligkeit pruefen.
 
Wie könnte ich denn den ersten Weg der if Abfrage verbessern?
Nur htmlentities reicht mir nicht aus ;)
Oder deckt das schon alle mögliche Fehlerquellen ab?
 
Also wenn Du, wie in diesem Fall, einen numerischen Wert erwartest, dann kannst Du Dir htmlentities() schenken, denn wenn es sich um einen numerischen Wert handelt wird die Funktion keinen Effekt haben, und ansonsten wird eh abgelehnt.

Und im Bezug auf andere, nichtnumerische Werte, was willst Du denn noch zusaetzlich zu htmlentities()? Ausserdem solltest Du damit vorsichtig sein und nicht zu wild damit um Dich schlagen, je nachdem was mit den Werten passieren soll.
 
Dann habe es mir quasi falsch angewöhnt alle $_GET und $_POST Variabeln so abzufragen:
PHP:
$id = array_key_exists ( "id" , $_REQUEST ) && !empty ( $_REQUEST['id'] ) ? htmlentities ( $_REQUEST['id'] ) : "";
$nick = array_key_exists ( "nick" , $_REQUEST ) && !empty ( $_REQUEST['nick'] ) ? htmlentities ( $_REQUEST['nick'] ) : "";
$pass = array_key_exists ( "pass" , $_REQUEST ) && !empty ( $_REQUEST['pass'] ) ? htmlentities ( $_REQUEST['pass'] ) : "";
?
 
Alle Werte mit derselben Funktionen zu filtern oder zu validieren, ist nicht besonders sinnvoll. Denn die erwarteten Werte sind meist unterschiedlichen Charakters und bedürfen deshalb auch einer spezifischen Behandlung.
 
Zurück