Hallo Forum
Bin PHP Anfänger und programmiere eine Art Content Management System. Habe mich nun erstmals in das Thema Sicherheit eingelesen und würde mich freuen, wenn jemand meine Schlussfolgerungen anschaut, um sicher zu gehen, dass ich nichts wichtiges überschaut habe.
Also erstmal habe ich Textfelder, die ich per POST übergebe. Die Textfelder sind reine Texteingaben, einmal normal und einmal mehrzeilig. Ich denke hier braucht es den Befehl strip_tags() und zusätzlich bei mehrzeilig nl2br().
Bei einem spezifischen Fehler (rest ist mit JavaScript plausibilisiert) kommen die Daten mit GET wieder zurück ins Formular. Ich denke hier brauchts nur br2nl() bei mehrzeilig.
OK, dann kommen die Daten in eine SQL Datanbank. Hierfür mysql_real_escape_string(). Habe gelesen, wenn die Server Funktion magic_quotes_gpc auf ON ist (bei mir der Fall), muss vorher noch stripslashes() angewendet werden.
Schliesslich lese ich die Daten in der SQL-DB und gebe diese aus. Hierfür zuerst addslashes() (weil vorher entfernt) und dann noch htmlspecialchars().
Könnt ihr mir sagen, ob das soweit richtig ist oder ob was wichtiges fehlt? Bin um jeden Hinweis und Kommentar dankbar.
Gruss
Chris
PS: Ich verstehe auch, dass man zum Thema Sicherheit ganze Bücher schreiben könnte und sehr viele andere Aspekte auch zu berücksichtigen sind, aber möchte halt wissen, ob ich mich total auf dem Holzweg befinde oder nicht.
PPS: Ich verwende übrigens keine POST/GET Variablen direkt als include(). Habe gelesen das wäre gefährlich.