Eenvoudig SQL injection en XSS voorkomen

Door 16 november 2012Tips & Trucs

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']);
?>