hallo iedereen had een vraag over mijn script of deze wel goed beveiligd is:

<?

include 'config.php';

if (isset($_POST['toevoegen'])) {

$vraag = isset($_POST['vraag'])?addslashes(htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['vraag'],$db)))):"";

$antwoord = isset($_POST['antwoord'])?addslashes(htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['antwoord'],$db)))):"";

if( (!$_POST['vraag']) || (!$_POST['antwoord'])) {
echo "<div class='descr'>Er is iets niet ingevuld probeer het opnieuw.</div>";
}else{
$query = mysql_query("INSERT INTO `faq` ( `faqname`, `faqanswer`) VALUES('$vraag','$antwoord')") or die(mysql_error());
if ($query) {
echo "<div class='descr'>De faq is toegevoegd.</div><br><br><br>";
}
else {
echo "<div class='descr'>Fout met het toevoegen. probeer het opnieuw.</div><br><br><br>";
}
}
}
?>


ik wil namelijk mijn script die ik aan het maken bent zo goed mogelijk te beveiligen
De functie addslashes() is inmiddels 'out-of-date'. Gebruik mysql_real_escape_string() in de plaats.
Waarom lees je de handleiding niet? Dit soort constructies slaat echt nergens op, dit is meer een competitie van "hoeveel functies kan ik loslaten op een string".

- Rommel wil je niet in je database hebben, addslashes() valt dus af.
- Een database is geen browser, htmlentities() valt dus af.
- striptags(), kan handig zijn wanneer je het niet wilt toestaan om html e.d. op te slaan.
- mysql_real_escape_string(), daarmee beveilig je de input voor een query die je op een MySQL-database loslaat.
- Backtics ` horen niet thuis in SQL, die rommel gooi je dus weg.

Reageren