Bueno he desarrollado un pequeño código en php para prevenir los ataques XSS a una página web.
Para evitar confusiones del HTML en nuestra base de datos.
function cadena($texto) {
$cadena = str_replace("<","<",$cadena);
$cadena= str_replace(">",">",$cadena);
}
Modo de uso:
cadena($tuvariable);
La segunda opción (más segura) es htmlentities
La función htmlentities () convierte los caracteres a entidades HTML.
Ejemplo:
$variable = htmlentities($_POST['usuario']);
Si tienes problemas con los caracteres UTF-8, la solución sería la siguiente:
$variable = htmlentities($_POST['usuario'], ENT_QUOTES, "UTF-8");
Recomendación para tus consultas a la base de datos.
os recomiendo la función que ofrece PHP mysql_real_escape_string, que tiene como función evitar algunos tipos de inyección SQL.
Ejemplo:
mysql_query("UPDATE notices SET comentarios = comentarios - 1 WHERE id = '".mysql_real_escape_string($id)."'");
Con eso es todo, espero haberos ayudado.