¿Deseas eliminar los ataques XSS mientras sigues permitiendo html?

Ok, ahora tengo un dilema, necesito permitir que los usuarios inserten HTML en bruto pero también bloqueen todas las etiquetas JS, no solo las etiquetas de script, sino las de href, etc. en este momento, todo lo que sé es

htmlspecialchars($string, ENT_QUOTES, 'UTF-8');

Pero esto también convierte las etiquetas válidas en caracteres codificados. Si uso striptags, tampoco funciona comoelimina etiquetas! (Sé que puede permitir etiquetas, pero la cosa es si permito alguna etiqueta como<a></a> la gente puede agregar JS malicioso a él.

¿Hay algo que pueda hacer para permitir las etiquetas html pero sin la inyección XSS? He planeado una función:xss() y he configurado la plantilla de mi sitio con eso. Devuelve la cadena de escape. (Solo necesito ayuda conescapando :))

¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta