Einen schönen guten Tag,
Ich befasse mich momentan gerade mit der SQL-Injektion und habe aus Spaß mal ein wenig damit auf meinem Server rumgetestet. Dafür habe ich nen table "users" erstellt, ein paar Datensätze eingetragen und ein Profil-viewer geschrieben. Hierbei wird die Id des Users als GET Parameter übergeben
Die SQL-Abfrage machte ich zuerst so
So war es sehr einfach den query irgendwie zu manipulieren (Der Sinn dahinter sei jetz mal zurückgestellt)
Anschließend hab ich Hochkommata in die SQL-Abfrage reingebracht
So ist es für mich nun unmöglich den Query in irgend einer Art und Weise zu manipulieren, da es einfach nicht möglich ist aus dem Query "auszubrechen", da Maqic Quotes eingeschaltet sind, d.h. jedes ' wird mit einem \' ersetzt. Meine Frage ist nun, ist Maqic Quotes wirklich der ultimative Schutz, der SQL-Injektionen unmöglich macht? Würde mich wundern, weil warum gibt es dann mysql_real_escape_string? Gibt es irgendeinen Weg Maqic Quotes zu umgehen?
Ich befasse mich momentan gerade mit der SQL-Injektion und habe aus Spaß mal ein wenig damit auf meinem Server rumgetestet. Dafür habe ich nen table "users" erstellt, ein paar Datensätze eingetragen und ein Profil-viewer geschrieben. Hierbei wird die Id des Users als GET Parameter übergeben
Code:
profile.php?user_id=0
PHP:
$sql = "SELECT * FROM users WHERE id=".$_GET['user_id']."";
Anschließend hab ich Hochkommata in die SQL-Abfrage reingebracht
PHP:
$sql = "SELECT * FROM users WHERE id='".$_GET['user_id']."'";