Ich frage Eingaben per Formular ab, diese Eingaben werden in eine Datenbank geschrieben und direkt wieder angezeigt und zwar diesmal sowohl im Formular, also auch normal.
Meine Frage ist ganz einfach: bin ich mit folgender Vorgehensweise vollkommen auf der sicheren Seite, oder muss ich noch andere Dinge beachten?
a) die User-Eingabe sicher machen, so dass mir keiner meine SQL-Befehle zerschiessen kann:
reicht da 'addslashes(String x)' aus?
Das sollte wohl reichen, es gibt aber für einige Datenbanken auch eigene Funktionen, mysql_escape_string() zum Beispiel. Sollte man vielleicht vorziehen.
b) die Datenbankergebnisse so hinbiegen, dass ich eine Ausgabe in ein Formular machen kann:
TEXTFIELDS (<input...>): 'htmlentities (htmlspecialchars (String x))'
Warum rufst Du htmlentities() zweimal auf, einmal normal und einmal in der abgeschwächten Version htmlspecialchars()? Damit machst Du aus dem Text "<strong>Hallöle" erst "<strong>Hallöle" und dann "<strong>Hallöle". Angezeigt wird's dann als "<strong>Hallöle", nicht in der doch sicher gewünschten Urform "<strong>Hallöle".
Kurz: Für sämtliche Ausgaben in die Seite sollte htmlentities() reichen.
Gruß,
soenk.e