Ксакеп, ну так заранее нужно думать, будет у тебя число или нет. Если число, то сразу пропускать через abs(intval()) и все, можно выводить, совать в запросы и не боятся, никакой уязвимости не будет априори.
А вот со строками сложней. Их перед выводом (или можно при получении сразу, как тебе нужно) нужно пропускать через htmlentities($string, ENT_QUOTES, 'UTF-8') , она обрабатывает все символы у которых есть html представления, то бишь уже можно написать
echo $string; и это уязвимостью не будет.
Если строку нужно засунуть в запрос то юзать mysql_real_escape_string() нужно непосредственно перед вставкой переменной в запрос, то есть так:
mysql_query('SELECT * FROM `users` WHERE `user` = "'.mysql_real_escape_string($string).'";');
Потому как эта функция насует в переменную слэшей и испортит изначальные данные, а ведь потом переменная может быть нужна для вывода и тд.
В общем если ты написал тот код, то позор тебе.