Hallo,
nach dem ich lange (wie die meisten sicherlich) ohne Gedanken an böswillige Benutzereingaben SQL Statements in PHP verwendet habe, bin ich nun sozusagen auf den Hund (greetz an derHund ) gekommen und habe gleich mal diesen Artikeln gefun den, der das Thema sehr treffende beschreibt.
Dort wird am Ende geraten Templates und Stored Procedures zu verwenden. Davon habe ich zwar noch nie was gehört, kann mir aber aus den Beispiel-Angaben des Autors das Prinzip gut vorstellen. Das Problem ist, dass MySQL (im Gegensatz PostgreSQL anscheinend) das noch gar nicht kann. Leider verwende ich bisher nur MySQL, weil ich mich mit Postgres noch nicht so beschäftigt habe und es bisher keinen Grund gab zu wechseln. Auch bieten die meisten Provider nur MySQL an.
Naja jedenfalls habe ich mir gedacht, doch einfach in jeglicher Benutzereingabe, die in einem MySQL-Statement vorkommt die einfachen Quotes und Kommentarzeichen (--) zu maskieren. Wie könnte man das am besten realisieren? Mit str_replace Backslashes davor setzen, oder die Quotes und Striche in HTML-Kodierung (also mit &#xx in die Datenbank ablegen und beim Auslesen wieder dekodieren? Was meint ihr dazu?
Desweiteren verstehe ich jetz auch, warum man keine SQL-Fehlerausgaben ausgeben sollte.
nach dem ich lange (wie die meisten sicherlich) ohne Gedanken an böswillige Benutzereingaben SQL Statements in PHP verwendet habe, bin ich nun sozusagen auf den Hund (greetz an derHund ) gekommen und habe gleich mal diesen Artikeln gefun den, der das Thema sehr treffende beschreibt.
Dort wird am Ende geraten Templates und Stored Procedures zu verwenden. Davon habe ich zwar noch nie was gehört, kann mir aber aus den Beispiel-Angaben des Autors das Prinzip gut vorstellen. Das Problem ist, dass MySQL (im Gegensatz PostgreSQL anscheinend) das noch gar nicht kann. Leider verwende ich bisher nur MySQL, weil ich mich mit Postgres noch nicht so beschäftigt habe und es bisher keinen Grund gab zu wechseln. Auch bieten die meisten Provider nur MySQL an.
Naja jedenfalls habe ich mir gedacht, doch einfach in jeglicher Benutzereingabe, die in einem MySQL-Statement vorkommt die einfachen Quotes und Kommentarzeichen (--) zu maskieren. Wie könnte man das am besten realisieren? Mit str_replace Backslashes davor setzen, oder die Quotes und Striche in HTML-Kodierung (also mit &#xx in die Datenbank ablegen und beim Auslesen wieder dekodieren? Was meint ihr dazu?
Desweiteren verstehe ich jetz auch, warum man keine SQL-Fehlerausgaben ausgeben sollte.
Kommentar