Beste webmasters
ik ben een eenvoudig blog systeem aan het maken voor mijn website
mijn vraag is nu is dit veilig voor sql injection
alvast dank
PHP Code:
<?php
$id = htmlentities($_GET['id']);
// medewerker opvragen met bovenstaande id
$query = "SELECT * FROM `weblog` WHERE `id` = " .$id;
$result = mysql_query($query) or trigger_error( mysql_error() );
$rij = mysql_fetch_assoc($result);
?>
<h1><?php echo $rij['naam'] ?></h1>
<?php echo $rij['tekst'] ?>
<hr />
<?php
/************ select ******************/
$query = "SELECT * FROM `weblogre` WHERE `afdeling` = " .$id;
//$query = "SELECT * FROM tabel where ? = ?";
// resultaat maken door query uit te voeren met onderstaand commando
$result = mysql_query($query) or trigger_error( mysql_error() );
//Alle rijen overlopen in een loop
while($rij = mysql_fetch_assoc($result)){
?>
<div id="rea">
<b><?php echo $rij['naam'] ?></b><br />
<?php echo $rij['tekst'] ?><br />
de reactie is geplaatst op: <?php echo $rij['datum'] ?></div>
<br />
<?php
}
?>
<hr />
<?php
// als er op submit werd gedrukt
if(isset($_POST['naam'])){
// variabelen
$naam = htmlentities($_POST['naam']);
$tekst = htmlentities($_POST['tekst']);
$afdeling = htmlentities($_POST['afdeling']);
$datum = htmlentities($_POST['datum']);
$query = "INSERT INTO `weblogre` (`naam`,`tekst`,`afdeling`,`datum`)
VALUES
('$naam','$tekst','$afdeling','$datum')";
mysql_query($query)or die(mysql_error());
echo "De reactie werd toegevoegd. <a href='../weblog/'>Keer terug naar overzicht</a>";
?>
<?php }else{ ?>
<form action="#" method="post">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="42" class="table-toevoegen">Naam:</td>
<td width="616"> <input name="naam" type="text" class="invul" /></td>
</tr>
<td colspan="2"><textarea name="tekst" cols="70" rows="6" class="invul" ></textarea>
<input type="hidden" name="afdeling" value="<?php echo $id ?>" />
<input type="hidden" name="datum" value="<?php echo date("d-m-Y", time()); ?>" /></td>
</tr>
</table>
<input type="submit" class="knop" value="Toevoegen" />
</table>
</form>
<?php } ?>
- veilig voor sql injection?
-
31-05-2011, 21:59 #1
- Berichten
- 320
- Lid sinds
- 15 Jaar
veilig voor sql injection?
-
-
31-05-2011, 22:14 #2
- Berichten
- 2.590
- Lid sinds
- 16 Jaar
Re: veilig voor sql injection?
Code:<input type="hidden" name="afdeling" value="<?php echo $id ?>" /> <input type="hidden" name="datum" value="<?php echo date("d-m-Y", time()); ?>" /></td>
-
31-05-2011, 22:17 #3
- Berichten
- 1.044
- Lid sinds
- 16 Jaar
Re: veilig voor sql injection?
Ik zou gebruik maken van mysql_real_escape_string()
Indien id numeriek is/moet zijn, zou ik ook controleren (met is_numeric() ) of dat daadwerkelijk zo is.
O, en backticks gebruiken in query's zou ik niet doen...
-
31-05-2011, 22:21 #4
- Berichten
- 320
- Lid sinds
- 15 Jaar
-
01-06-2011, 07:11 #5
- Berichten
- 25
- Lid sinds
- 14 Jaar
Re: veilig voor sql injection?
PHP Code:if(isset($_GET['id'])) {
$id = intval($_GET['id']);
//rest code
}
Zo zou ik beginnen :)
Daarnaast idd mysql_real_escape_string() gebruiken ipv htmlentities. Checken of naam,tekst,afdeling en datum wel gevuld zijn en of deze geldige waarden bevatten.
Ook kun je een token in je sessie & form zetten. Als de form wordt gesubmit kun je dan checken of token klopt. Hiermee voorkom je dat iemand die niet op de site is toch requests kan posten( spammen).Laatst aangepast door Ben Weiland : 01-06-2011 om 07:22
-
02-06-2011, 07:43 #6
- Berichten
- 320
- Lid sinds
- 15 Jaar
Re: veilig voor sql injection?
Bedankt allemaal voor de hulp :)
Aanvullend bericht:
Nog ene klein vraagje
ik gebruik nu onderstaande code
mag ik mysql_real_escape_string en htmlentities samen gebruiken ?
alvast dank
PHP Code:<?php
$id = htmlentities($_GET['id']);
// medewerker opvragen met bovenstaande id
$query = "SELECT * FROM `weblog` WHERE `id` = " .$id;
$result = mysql_query($query) or trigger_error( mysql_error() );
$rij = mysql_fetch_assoc($result);
?>
<h1><?php echo $rij['naam'] ?></h1>
<?php echo $rij['tekst'] ?>
<hr />
<?php
/************ select ******************/
$query = "SELECT * FROM `weblogre` WHERE `afdeling` = " .$id; // resultaat maken door query uit te voeren met onderstaand commando
$result = mysql_query($query) or trigger_error( mysql_error() ); //Alle rijen overlopen in een loop
while($rij = mysql_fetch_assoc($result)){
?>
<div id="rea">
<b><?php echo $rij['naam'] ?></b><br />
<?php echo $rij['tekst'] ?><br />
de reactie is geplaatst op: <?php echo $rij['datum'] ?>
</div>
<br />
<?php
}
?>
<hr />
<?php
// als er op submit werd gedrukt
if(isset($_POST['naam'])){
// variabelen
$naam = mysql_real_escape_string(htmlentities($_POST['naam']));
$tekst = mysql_real_escape_string(htmlentities($_POST['tekst']));
$afdeling = mysql_real_escape_string($id);
$datum = htmlentities($_POST['datum']);
$id = mysql_real_escape_string($_POST['id']);
$date = date("d m Y");
$query = "INSERT INTO `weblogre` (`naam`,`tekst`,`afdeling`,`datum`,`id`,`date`) VALUES ('$naam','$tekst','$afdeling','$datum','$id','$date')";
mysql_query($query)or die(mysql_error());
echo "De reactie werd toegevoegd. <a href='../weblog/'>Keer terug naar overzicht</a>";
?>
<?php }else{ ?>
<form action="#" method="post">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="42" class="table-toevoegen">Naam:</td>
<td width="616">
<input name="naam" value="Naam" class="inputformstyle" type="text" /></td></tr>
<td colspan="2"><textarea name="tekst" value="Uw bericht hier..." class="inputformstyle" cols="70" rows="6" ></textarea>
</tr>
</table>
<input type="submit" class="submit" value="Toevoegen" />
</table>
</form>
<?php } ?>Laatst aangepast door fleur verlinden : 02-06-2011 om 08:24 Reden: Automatisch samengevoegd.
-
03-06-2011, 10:31 #7
- Berichten
- 17
- Lid sinds
- 14 Jaar
Re: veilig voor sql injection?
Paul Boekholt - Byte Internet
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic