Beveiliging verhogen met Magic Quotes is aan

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

MArk Peters

MArk Peters

23/07/2013 11:20:20
Quote Anchor link
Op mijn webhost staat Magic Quotes 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?
 
PHP hulp

PHP hulp

22/12/2024 20:21:35
 
Erwin H

Erwin H

23/07/2013 11:24:14
Quote Anchor link
Als eerste magic quotes UITZETTEN! Dat is echte de meest verschrikkelijke optie die ze ooit hebben uitgevonden.

Gewoon zelf escapen daar waar het nodig is, dus voor je een waarde gaat gebruiken in een query.
 
MArk Peters

MArk Peters

23/07/2013 11:25:33
Quote Anchor link
Oke zal ik doen maar wat bedoel je precies met zelf escapen. Ik heb daar al wel diverse dingen over gelezen maar snap dat niet helemaal

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
 
Ward van der Put
Moderator

Ward van der Put

23/07/2013 11:27:57
Quote Anchor link
Nee, je moet op zijn minst mysql_real_escape_string() gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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.
 
Erwin H

Erwin H

23/07/2013 11:30:55
Quote Anchor link
Als je webhost het regelt heb je waarschijnlijk al direct een probleem, want dan kan je het in veel gevallen niet zelf meer doen. Probleem is dat je magic quotes aan of uit zet in php.ini en daar heb je op een shared host waarschijnlijk geen toegang toe.

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)
 
MArk Peters

MArk Peters

23/07/2013 11:31:21
Quote Anchor link
mysql_real_escape_string() is deprecated dus ik kan idd beter overstappen.
Welke is het makkelijkste om op over te stappen?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.