Twee simpele functies welke mij in “standaard php scripts” (niet gebaseerd op frameworks o.i.d.) van dienst zijn om SQL injection en XSS tegen te gaan:
<?php
//SQL injection tegengaan
function secure_in ($string)
{
return mysqli_real_escape_string($string);
}
//XSS tegengaan
function secure ($string){
return htmlspecialchars($string, ENT_QUOTES, "UTF-8");
}
?>
Om het goed te doen dienen deze functies wel op de juiste plaatsen gebruikt te worden! Zo dient secure_in() gebruikt te worden in alle queries waarin de input van de bezoeker komt, bijvoorbeeld:
<?php
mysqli_query("INSERT INTO gebruikers (naam) VALUES ('".secure_in($_POST['naam'])."')");
?>
En dient secure() overal gebruikt te worden wanneer er door een bezoeker opgegeven informatie weergegeven wordt:
<?php echo secure($_POST['naam']); ?>