Absicherung von Benutzereingaben
-
Hi,
die Suche mag mich wohl nicht oder es gibt tatsächlich nichts zu dem thema.Situation: ich wähle mithilfe von
index.php?page=name
eine Seite aus. diese wird über eine MySQL-Datenbank dann ausgegeben. (vereinfacht gesagt). nun hab ich das Problem, dass ich auf jeden Fall SQL Injection verhindern muss.
PROBLEM: es können wörter wieSELECT LIKE DROP usw.
vorkommen.
mein erster Gedanke war "Oh Mist", der zweite führte mich dann über eine Textdatei zu einer recht einfachen Lösung (auf den ersten Blick):
Ich erstelle per Cron oder anderem (scripte etc.) eine Textdatei, in der die Namen der "Seiten" stehen. Probleme: die Datei kann bei mehreren tausend Seitennamen (evtl. als CSV) recht groß werden. Außerdem funktioniert das nur auf Webservern, bei denen das Script Schreibrechte hat (bei SF.net müsste das ins /temp rein, was auch schlecht wäre).Any Hints? Erfahrungen? Links? Code?
C167
-
wo ist das problem? du "escapest" den string einfach (mysqli_real_escape_string) und machst deine anfrage an die DB... wenn du kein ergebnis bekommst, gibts die datei nicht... und gut ist.
oder verstehe ich etwas falsch?
-
[quote="Shade Of Mine"]wo ist das problem? du "escapest" den string einfach (mysqli_real_escape_string) und machst deine anfrage an die DB... wenn du kein ergebnis bekommst, gibts die datei nicht... und gut ist.
oder verstehe ich etwas falsch?[/quote]
hm, das wäre evtl. was, ich arbeite halt mit
PEAR::DB
, mal schaun, obs da was änliches gibt.
aber reicht es denn, alles durch diese oder eine vergleichbare Funktion zu jagen? dann wäre SQL-Injection bei fast allen MySQL-Basierten PHP-Scripten nahezu ausgeschlossen, wenn man konsequent diese Funktion bemüht, oder nicht?danke für den Tipp
-
So ist es!
Nur viele Denken nicht daran oder haben teilweise sehr kompliziert SQL-Anfragen, die3 teilweise komplett dynamisch generiert werden und es aus technischen Gründen sehr schwer ist.
-
hm, okay. ich hab eben gemerkt, dass PEAR::DB nichtmehr weiterentwickelt wird, und hab mal MDB2 genommen. der sagt mir aber, dasser das mysqli-plugin in PHP braucht, was ich nicht habe, und das auch nicht als debian-packet vorliegt(?) mal schaun