Dein 4 Punkt verstehe ich von der Ausage her nicht ganz. Wenn dann ist nicht get_magic_quotes_gpc aktiviert sondern magic_quotes. Die Funktion get_magic_quotes_gpc ist nur eine PHP Funktion die abprüft ob magic_quotes in der ini auf on steht und wenn das der Fall ist musst die Variablen eben mit stripslashes behandeln und die bereits gesetzten escapes entfernen um eben dann doppelte escapes zu ver meiden und das machst eben so hier.
PHP-Code:
if(get_magic_quotes_gpc()==1 && get_magic_quotes_gpc())
{
$var = stripslashes($var);
}
Hier
prüfst du eben ob magic_quotes in der ini auf on steht und wenn ja dann werden die escapes entfernt, wenn sie nicht aktiviert ist also magic_quotes auf off steht wird der Code in dem if Block gar ich erst abgearbeitet weil die Bedinung da drin get_magic_quotes_gpc()==1 nicht wahr ist.
zu 5.)
Die Aussage ist fachlich nicht ganz richtig. Wenn du in einer Sqlabfrage in der Where Clausel nach Strings (Zeichenketten) abfragst oder eben Zeichenketten in die DB schreibst, dann musst da darauf mysql_real_escape_string anwenden, auch ein Passwort im md5() Hash ist eine Zeichenkette, also würde ich auch diese
prüfen. Bei Integer Werten wendest du eben intval($var) oder noch besser (int)$var an. Und bei Gleitpunktzahlen eben dann (float)$var oder auch (double)$var wenn es sich um relativ sehr genaue Berechnungen handelt (das kenne ich nur aus C so, musste in PHP damit noch nie arbeiten). Damit ist eigentlich alles abgedeckt was nun die einzelnen Datentypen angeht.
Ich zum Beispiel typisiere meine Variablen bevor ich sie nutze auch in der Deklaration noch. Also so hier.
PHP-Code:
$var = (string)$_POST['var'];
$int_var = (int)$_POST['int_var'];
$float_var = (float)$_POST['float_var'];
Wenn man mal bisschen was mit C gemacht hat oder sich da rein arbeitet stöst man eben dann auf den Bereich Variablen Deklaration, Initialisierung und Definition. Wobei Definition eigentlich Deklaration und Initialisierung in einem sind. In C musst du halt eben die Variablen so ausgeben
In PHP musst du bei der Ausgabe eben nicht extra formatieren. In C werden Variablen generell intern als INT Werte in den Speicher gelegt und du musst manuell für die Formatierung sorgen, in PHP wird das intern für dich übernommen.
Nun gut das weitet sich aber nun zu sehr aus und triftet stark vom Thema ab. Sorry für den kleinen Ausflug
Ich denke das müsste als Erklärung eben reichen so das du weiter dich informieren kannst.
Ich denke ich werde auf meiner Seite mal ein kleines Tut schreiben wo es sich um Grundliegende Sicherheitsvorkehrungen dreht, dank nikosch bin ich da auch sehr viel gründlicher geworden.