Ik ben bezig met het maken van een site en heb de veiligheid laten testen door het programma Netsparker, dat de site infeite bestookt met zoveel mogelijk onzin in POST-data, op alle knoppen gaat drukken, en bekende aanvallen uitvoert.
Ik heb op een pagina een query die infeite als volgt werkt:
Ondanks dat ik 100% zeker weet dat alle variabelen die deze query ingaan eerst door de functie real_escape_string onderhanden genomen worden, is het het programma toch gelukt om een SQL error te genereren (you have an error in your syntax).
Hoe is dit mogelijk? Ik kom er niet uit...
Ik weet dat prepared statements beter zijn en onthou dit voor de toekomst, maar wil me nu eerst even richten op de huidige programmatuur.
Ik heb op een pagina een query die infeite als volgt werkt:
code:
1
2
3
4
5
6
7
8
| <?php
$variabele1 = $mysqli->real_escape_string($_POST["variabele1"]);
$variabele2 = $mysqli->real_escape_string($_POST["variabele2"]);
$variabele3 = $mysqli->real_escape_string($_POST["variabele3"]);
$query = "INSERT INTO tabelnaam (variabele1, variabele2, variabele3) VALUES ('$variabele1', '$variabele2', '$variabele3')";
$mysqli->query($query);
?> |
Ondanks dat ik 100% zeker weet dat alle variabelen die deze query ingaan eerst door de functie real_escape_string onderhanden genomen worden, is het het programma toch gelukt om een SQL error te genereren (you have an error in your syntax).
Hoe is dit mogelijk? Ik kom er niet uit...
Ik weet dat prepared statements beter zijn en onthou dit voor de toekomst, maar wil me nu eerst even richten op de huidige programmatuur.