SQL Injection noch möglich?

Es reicht eigentlich den Eingabewert durch die mysql_real_escape_string()-Funktion zu schicken, um vorkommende Metazeichen zu maskieren. Ein zusätzlicher Vergleich mit einer Schwarzen Liste aller möglichen MySQL-Schlüsselwörter halte ich für übertrieben.
 
Da [phpf]mysql_real_escape_string[/phpf] bereits seit PHP 4.3.0 integriert ist und sie bei dir anscheinend fehlt, empfehle ich dir dringend ein Update zu machen (bzw. eines bei deinem Hoster zu fordern).
 
Hallo,

Dein Fehler liegt meiner Meinung nach hier:
$site=mysql_real_escape_string($site, $verbindung);


Das habe ich gerade gestern herausgefunden, da ich das gleiche Problem hatte.
Du musst die Connection zur Datenbank engeben. Die hattest Du offentsichtlich schon hergestellt.
(is_resource($verbindung))

Gruß, Bettina
 
Zuletzt bearbeitet:
Das würde für [phpf]mysqli_real_escape_string[/phpf] stimmen, allerdings kommt da die Verbindungsressource als erstes.

Bei [phpf]mysql_real_escape_string[/phpf] nimmt die erste offene Verbindung die er findet. Ist also ein optionaler Parameter. Bei multiplen Verbindungen, sollte man das natürlich beachten und ggf. die Ressource übergeben.
 
Zurück