Variablen im Skript sicher übergeben und verarbeiten

nickiquickie

Mitglied
Hallo!

Ich habe eine Frage zur Sicherheit in meinen Skripten.
Und zwar werden in meinen Skripten oft $_GET-Variablen übergeben. Mal werden die Werte dieser Variablen im Skript weiterverarbeitet und mal werden sie in die Datenbank geschrieben.
Jetzt stellt sich mir die Frage, wie ich die Variablen bei welcher Aktion absichern kann?
Ich nutze derzeit diese Funktion:
Code:
function quote_smart($value)
{
   if (get_magic_quotes_gpc()) {
       $value = stripslashes($value);
   }
   if (!is_numeric($value)) {
       $value = mysql_real_escape_string($value);
   }
   return $value;
}
Werden die übergebenen Variablen gespeichert, laufen sie vorher durch diese Funktion.
Also folgendermaßen:
Code:
$name = quote_smart($_GET['name']);
Danach verwende ich die Variable wie oben beschrieben (ausgeben oder in DB speichern).
Jetzt würde ich gerne wissen, ob das so ausreichend ist?
Oder wie funktioniert es eurer Meinung nach am Besten, die Variablen abzusichern?

Vielen Dank schonmal für Eure Antworten!
Grüße, nickiquickie
 
Ich rate dir die Magic Quotes ganz zu deaktivieren oder sie am Anfang des Skriptes aus allen Werte zu entfernen, um so die Ursprungsform der Daten zu erhalten. Von da ausgehend kannst du dann die Daten wieder je nach Bestimmung entsprechend weiterverarbeiten.
 
Ok, soviel zum allgemeinen deaktivieren der Magic Quotes. Danke an Plfreak und Gumbo für den Hinweis.
Aber wenn ich dann die Magic Quotes deaktiviert habe, muss ich die übergebenen Variablen trotzdem noch "behandeln", oder nicht?
Nutze ich dann Funktionen wie strip_tags() oder was nehme ich da dann am Besten?

Bevor ich sie dann in die DB speichere nutze ich die Funktion mysql_real_escape_string(). Oder?
 
richtig und für php addlashes

Und was machst du bei zeichen wie öäü ?

wahrscheinlich wirste da nicht mal ein header vorransetzen der richtig kodiert

dafür würd ich dir noch htmlentities() raten

Was unter anderem zu sicherheit von zeichen wie <> beitragen wird.
 
Zurück