Para la validación de entrada, recomiendo un enfoque de lista blanca combinado con pasar o rechazar. Así que define qué es válido y acepta solo entradas válidas, rechaza todo lo demás.
Si crea un editor de texto enriquecido que envía html a su servidor, puede usar JavaScript para desinfectar la entrada, de modo que pegar html desde Word podría terminar funcionando. Sin embargo, su servidor no aceptará ninguna entrada no saneada.
Tratar de limpiar está sujeto a fallas, ya que esto suele ser mucho más complejo que simplemente averiguar si la entrada es válida o no.
La lista blanca es esencial para una buena seguridad. Siempre puede decidir aceptar más entrada, mientras mantiene el control. En un enfoque de lista negra, siempre tendrás que ponerte al día con el último truco.
Para resultados, vea otras respuestas.