Hallo,
gibt es eine bestimmte System, wie man mit POST- und GET-Variablen umgeht, je nachdem, was man damit vorhat?
Ich frage mich nämlich bei dem ganzen Funktionen:
addshlashes, htmlentities, mysql_real_escape_string
und was es noch so gibt, wann ich was anwende. Also nach den Funktionen der Funktionen (klingt komisch ^^) würde ich jetzt vereinfacht sagen:
- htmlentities, wenn ich die Daten in HTML-ausgeben will
- mysql_real_escape_string, wenn ich die Daten in MySQL eintragen will
Liege ich damit in etwa richtig? Gibt es irgendwo ein Tutorial, für diese Funktionen. Ich bin zwar in der Lage, die einzelnen Funktionen zu ergoogeln, aber ich habe keine Seite gefunden, wo ich etwas allgemeines zur sicheren Behandlung von POST-/GET-Variablen finde und wann ich die mit welcher Funktion behandle.
Wen meine Fragen zu allgemein sind, ich habe folgendes vor (in Klammern jeweils meine derzeitige Behandlung der Variable):
-
POST-Variable (Einfacher Text ggf. mit Sonderzeichen) in MySQL-Datenbank eintragen (mysql_real_escape_string($variable))
-
Abfrage aus Datenbank wo Feldwert der POST-Variable entspricht (mysql_real_escape_string($variable))
-
Ausgabe der POST-Variable als Überschrift in HTML (htmlentities($variable))
-
Link aus POST-Variablen (z. B. bild.jpg) basteln. Etwa so:
<a href="http://eineurl/<?php echo $variable_verzeichnis ?>/<?php echo $variable_datei ?>">Link</a>
Wie sollte ich hier die POST-Variablen behandeln, wenn ich verhindern möchte, dass z.B. auf übergeordnete Verzeichnisse zugegriffen wird (z.B. wenn Inhalt von $variable_datei = ../../verzeichnis/datei.jpg)
Ist meine Behandlung in 1) bis 3) ausreichend (sicher)?
Lässt sich das möglicherweise garnicht so pauschal sagen und ist von Fall zu Fall zu entscheiden?