Vraag & Antwoord

Webprogrammeren & scripting

[MySQL] Userinput veilig naar database schrijven?

2 antwoorden
  • Beste forumgenoten, Ik ben met een hobbyprojectje bezig en hiervoor wil ik personen in een database hebben staan. Ik heb een webinterface gebouwd om personen in te voeren en op te slaan. Nu is het de bedoeling dat andere mensen dit ook gaan kunnen, dus moet ik SQL-injecties uitsluiten. Uit mijn lap code is onderstaande het gedeelte dat de invoer "filtert" en in de database plaatst:[code:1:acdadca840]// PHP code: haal de gezochte waarden uit de $_POST-array // Cast deze waarden naar int (= 0 indien geen numerieke waarde) $land = (int)$_POST["land"][$i]; $gebdag = (int)$_POST["gebdag"][$i]; $gebmaand = (int)$_POST["gebmaand"][$i]; $gebjaar = (int)$_POST["gebjaar"][$i]; // Doe stripslashes() ivm formpost, daarna mysql_real_escape_string() voor veilige database-toegang $voornamen = mysql_real_escape_string(stripslashes($_POST["voornamen"][$i])); $tussenvoegsel = mysql_real_escape_string(stripslashes($_POST["tussenvoegsel"][$i])); $achternaam = mysql_real_escape_string(stripslashes($_POST["achternaam"][$i])); // Stel query samen $query = "INSERT INTO personen VALUES (NULL,'".$voornamen."','".$tussenvoegsel."','".$achternaam."',".$land.",'".$gebjaar."-".$gebmaand."-".$gebdag."');"; // Print query voor controle print("<pre>".$query."</pre>"); // Voer query uit mysql_query($query) or die ("Fout in query: ".mysql_error());[/code:1:acdadca840] Mijn vraag is nu als volgt: in hoeverre is dit veilig en immuun voor SQL-injecties? - Bas
  • Je zou in plaats van (int) de intval() function kunnen gebruiken. Maar voor de rest wordt het wel geescaped.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.