[PHP] Formularfelder sichern

Martu

@
ID: 303421
L
25 Mai 2006
186
32
Hallo,

ich bräuchte mal eben Hilfe :) Und zwar wie kann ich mein selbstgecodetes Gästebuch davor schützen, dass jemand über das Eintragungsformular den PHP Code oder den MySQL Befehl infiziert?

Falls es nötig zu wissen ist: hab Ubuntu 7.10

Und die Startseite des Gästebuchs ist eine Index.php. Die einzelnen Seiten (Einträge ansehen, Eintrag schreiben, Impressum usw.) werden über ?wyw=write z.B. aufgerufen. Wie kann ich das sicher machen?
 
Im FAQ-Forum unter Snipplets findest du eine Funktion, die dich vor SQL-Injections schützt.
 
Hm, habe ich das richtig verstanden? Diese Funktion dann in eine Include Datei schreiben, includen und dann jedes mysql_query mit db_query ersetzen? :)
 
Hm, habe ich das richtig verstanden? Diese Funktion dann in eine Include Datei schreiben, includen und dann jedes mysql_query mit db_query ersetzen? :)

ersetzen alleine reicht nicht, du musst noch alleine deine eingaben als parameter übergeben.. Beispiel ist ja dabei.. ich räum leider grad auf und deswegen komm ich sher schlecht an den pc, sonst würd ich mher schreiben
 
Hier war zwar nur das Absichern von Formularfeldern gegen SQL-Injections gefragt,aber auf der Seite fehlt auch noch dringend ein Script,dass beim Abschicken des Formulars vorhandene HTML-Tags entfernt oder maskiert.
Ein Fehler,der ja leider immer noch öfters gemacht wird.
 
@Cosmoflamme:
Das geht dann mit der ersetzen-funktion von PHP, oder?

@Astrodan:
Hm, jetzt steh ich auf dem Schlauch 8O Wie übergebe ich die Strings als Parameter? Sorry aber ich bin nicht sehr weit mit PHP, meine letzte Coderei ist ein halbes Jahr her ;)
 
Noch zusätzlich gut ist du hast keine übergreifenden Rechte mit dem SQL User mit dem du deine Verbindung aufbaust. Der sollte auch keine Löschrechte von ganzen Tabellen haben. Also nie mit dem Admin konnekten.

Die Escape Probleme werden erst richtig lebhaft wenn zusätzlich noch rechte auf Dantenbanken wie Mysql bestehen.

mysql_real_ecscape String ist zwar nett, aber das einzig gefährtliche ist ein Semikolon ( ; ) das erlaubt einen weiteren Befehl einzuschelusen. Also wenn du auf den Otto verzichstest schaus du, dass du nach dem Bubi da -> ; in deinen Strings suchst und diese verhinderst. Der exscaper ' bzw " können dir ebenfalls gefährlich werden.

Wenn du gecodete Zeichen in Mysql zulässt würde ich die extra verbieten. Das ist kein PHP Bug, der ist in jeder Sprache möglich, die auf Mysql zugreift. Das ist wie mit register_globals on zu laufen. Fahrlässigkeiten werden bestraft.