Don Stefano
Erfahrenes Mitglied
Hallo zusammen,
da ich eh gerade meine Datenbankkommunikation umprogrammiere (der Probleme halber weg von der Objektorientierung) würde ich sie auch gern sicher machen und vor SQL Injektionen schützen.
Dies geschieht ja mit der Funktion mysql_real_escape_string() z.B. folgendermaßen:
anstatt
Meine Frage dazu. Ist dies für sämtliche Variablen notwendig, mit denen in den Skripten gearbetet wird, und die irgendwie mit der Datenbank in Verbindung stehen ?
Und dann habe ich unter dem angegebenen Link gelesen: "Falls Sie magic_quotes_gpc aktiviert haben und mit Daten aus Benutzereingaben arbeiten, müssen Sie vorher Ihre Daten mit stripslashes() behandeln."
Auf meinem Webserver ist magic_Quotes_gpc aktiviert und zwar nur dieses magic_quotes.
So wie ich das verstehe muss ich also stripslashes() bei jeder Variable verwenden, sie ich mit mysql_real_escape_string() "maskiere". Ist das wirklich notwendig?
Wie sähe dann der angepasste Code aus, den ich oben abgebildet habe? Folgendermaßen ?
Ist das so korrekt?
Was gibts es zu dem Thema noch zu wissen ? Oder bin ich dann damit vor SQL Injektionen sicher?
Außerdem würde mich mal folgendes interessieren. Ich habe eine Datei mit meinen Datanbankdaten, die zum DB-Aufbau immer includet wird. Ist es nicht unsicher, wenn die einfach so auf dem Server liegt, und kann man die Daten, die sie enthält nicht auch irgendwie den "laufenden Skripten" entnehmen (in böser Absicht)?
Danke für Eure Ratschläge und Hinweise
da ich eh gerade meine Datenbankkommunikation umprogrammiere (der Probleme halber weg von der Objektorientierung) würde ich sie auch gern sicher machen und vor SQL Injektionen schützen.
Dies geschieht ja mit der Funktion mysql_real_escape_string() z.B. folgendermaßen:
PHP:
$query = "
UPDATE `tabelle`
SET `name` = '".mysql_real_escape_string($name)."',
`geschlecht` = '".mysql_real_escape_string($geschlecht)."', ...
PHP:
$query = ("update tabelle SET name='$name', geschlecht=$geschlecht",...
Und dann habe ich unter dem angegebenen Link gelesen: "Falls Sie magic_quotes_gpc aktiviert haben und mit Daten aus Benutzereingaben arbeiten, müssen Sie vorher Ihre Daten mit stripslashes() behandeln."
Auf meinem Webserver ist magic_Quotes_gpc aktiviert und zwar nur dieses magic_quotes.
So wie ich das verstehe muss ich also stripslashes() bei jeder Variable verwenden, sie ich mit mysql_real_escape_string() "maskiere". Ist das wirklich notwendig?
Wie sähe dann der angepasste Code aus, den ich oben abgebildet habe? Folgendermaßen ?
PHP:
$query = "
UPDATE `tabelle`
SET `name` = '".mysql_real_escape_string(stripslashes($name))."',
`geschlecht` = '".mysql_real_escape_string(stripslashes($geschlecht))."', ...
Ist das so korrekt?
Was gibts es zu dem Thema noch zu wissen ? Oder bin ich dann damit vor SQL Injektionen sicher?
Außerdem würde mich mal folgendes interessieren. Ich habe eine Datei mit meinen Datanbankdaten, die zum DB-Aufbau immer includet wird. Ist es nicht unsicher, wenn die einfach so auf dem Server liegt, und kann man die Daten, die sie enthält nicht auch irgendwie den "laufenden Skripten" entnehmen (in böser Absicht)?
Danke für Eure Ratschläge und Hinweise