En lugar de bloquear, puede permitir el ingreso de cualquier etiqueta, pero puede evitar la ejecución de secuencias de comandos cuando se imprime implementando un Política de seguridad del contenido .
Esto se ejecuta mediante la salida de un encabezado HTTP en todas las páginas de su sitio (o al menos en todas las páginas de contenido del usuario).
por ejemplo
Content-Security-Policy: default-src 'self'
solo permitirá que se acceda a los archivos de script en su propio dominio. Si el usuario incluyera alguno de sus propios códigos en las etiquetas <script>
, los atributos ( onclick="doEvil();"
) o el código referenciado en otros dominios ( <script src="http://www.example.com/evil.js"></script>
)noseejecutarían.Sivaporestaruta,debelimitareldefault-src
(queafectarátodo,desdesolicitudesXHR,fuentesdefuente,fuentesdeimágenes,etc.)hastaself
(esdecir,elmismoorigen)ocomomínimodebelimitarelscript-src
ystyle-src
,loqueevitarálosscriptsexternosyenlíneayelcódigoCSS.
ElúnicoinconvenientequeveodeesteenfoqueesquelosnavegadoresmásantiguospuedennosercompatiblesconCSP.Esposiblequepuedadetectarestoyluegomostraraestosusuariosunaversión"segura" de texto simple del contenido. Por ejemplo, elimine todas las etiquetas y luego codificación HTML en la salida (para evitar cualquier etiqueta que se haya filtrado). Los navegadores compatibles están listados aquí .