Essas duas funções são um exagero para a higienização?

function sanitizeString($var)
{
    $var = stripslashes($var);
    $var = htmlentities($var);
    $var = strip_tags($var);
    return $var;
}

function sanitizeMySQL($var)
{
    $var = mysql_real_escape_string($var);
    $var = sanitizeString($var);
    return $var;
}

Peguei essas duas funções em um livro e o autor diz que, usando essas duas, posso ter segurança extra contra XSS (a primeira função) e injeções de sql (2ª função). São todos necessários?

Também para higienizar, uso declarações preparadas para evitar injeções de sql.

Eu usaria assim:

$variable = sanitizeString($_POST['user_input']);
$variable = sanitizeMySQL($_POST['user_input']);

EDITAR: Livre-se de strip_tags para a 1ª função porque ela não faz nada. O uso dessas duas funções seria suficiente para impedir a maioria dos ataques e seria bom para um site público?

questionAnswers(7)

yourAnswerToTheQuestion