Beveiliging verhogen met Magic Quotes is aan
Op mijn pagina maak ik gebruik van
$klas = $_POST["klas"];
$periode = $_POST['periode'];
icm
$sql="SELECT leerling FROM KLASSEN where klas='$klas'";
$result = mysql_query($sql);
is dit dan genoeg beveiligd (SQL injectie o.i.d.) ?
Wat kan ik nog meer doen om de beveiliging te vergroten?
Gewoon zelf escapen daar waar het nodig is, dus voor je een waarde gaat gebruiken in een query.
O ja, hoe kan ik Magic Qoutes uitschakelen want mijn webhost regelt dat ws
Gewijzigd op 23/07/2013 11:26:25 door MArk Peters
mysql_real_escape_string() gebruiken.
Verder kan het geen kwaad om nu over te stappen op MySQLi of PDO, want de standaardextensie voor MySQL is verouderd.
Nee, je moet op zijn minst Code (php)
1
2
3
2
3
<?php
$sql = "SELECT leerling FROM KLASSEN where klas='" . mysql_real_escape_string($klas) . "'";
?>
$sql = "SELECT leerling FROM KLASSEN where klas='" . mysql_real_escape_string($klas) . "'";
?>
Verder kan het geen kwaad om nu over te stappen op MySQLi of PDO, want de standaardextensie voor MySQL is verouderd.
Met escapen wordt bedoeld het escapen (lees: onschadelijk maken) van bepaalde karakters. Meestal gaat het dan om enkele en dubbele quotes in strings. Niet alleen is dat nodig voor sql injectie, maar ook voor het goed invoeren van strings waarin quotes zitten (denk aan 's Gravenhage). Check http://php.net/mysqli_real_escape_string
(en bedenk ook of je niet over wil van de mysql_xxxx functies naar mysqli_xxxx functies, omdat de eerste eruit gaan)
Welke is het makkelijkste om op over te stappen?