$_GET, $_POST, $_REQUEST

Der Request den man bekommt wird generell als unsicher angenommen, da nie sichergestellt werden kann, ob dieser nicht manipuliert wurde (mutwillig oder auch nicht).
In Zeiten wo ScriptKids und auch professionellen Hackern ihr Unwesen treiben, sollte vermehrt auf nummersicher gegangen werden.
Hier für gelten folgende Regeln:

arbeite niemals mit der Variable Request

Die Variable $_REQUEST, beinhaltet das gesamte Array von $_GET und $_POST, wobei nicht sichergestellt werden kann, aus welchen der beiden Array der Wert stammt.
Zusätzlich sollte man wissen, das $_POST Werte die $_GET Werte innerhalb von $_REQUEST überschrieben werden.

Vertraue niemals Usereingaben

Neben den bekannten Super-Globalen Variablen $_POST und $_GET, können teilweise auch Werte von $_SERVER durch den User manipuliert werden, z.B.: Refferer.
Neben der bekannten Defaces von Seiten, z.B. durch JS, kann man auch mit NULL-Bytes sein Unwesen treiben.
Um den Request von NULL-Bytes zusäubern, muss man jeden Wert durcharbeiten, am besten verwendet man hier HTMLSPECIALCHARS mit der Iso angabe.

Beispiel:

FOREACH ($_POST AS $key => $val) {
    IF (TRUE == IS_ARRAY($val)) {
        FOREACH ($val AS $a_key => $a_val) {
            IF (TRUE == IS_ARRAY($a_val)) {
                FOREACH ($a_val AS $a_a_key => $a_a_val) {
                    $_POST[$key][$a_key][$a_a_key] = HTMLENTITIES(STRIPSLASHES(TRIM($a_a_val)), ENT_QUOTES, 'iso-8859-1');
                }
            } ELSE {
                $_POST[$key][$a_key] = HTMLENTITIES(STRIPSLASHES(TRIM($a_val)), ENT_QUOTES, 'iso-8859-1');
            }
        }
    } ELSE {
        $_POST[$key] = HTMLENTITIES(STRIPSLASHES(TRIM($val)), ENT_QUOTES, 'iso-8859-1');
    }
}

Mische niemals Get und Post

Viele Programmierer passiert es häufig das $_GET und $_POST Variablen gleichzeitig übergeben werden. Dies sollte möglichst vermeiden.
Arbeitet eine Seite mit Parametern in der Url um die gewünschte Seite aufzurufen und es wird gleichzeitig ein Formular abgesetzt, so könnte es durch leichte Manipulation der Variablen einen Fehler auftreten, da wie schon vorhin beschrieben, kann man keine Unterscheidung zwischen POST und GET vorgenommen werden kann.