¿Hay algún encabezado HTTP para deshabilitar Javascript para una página específica? Mi sitio web ofrece contenido HTML generado por el usuario (es por eso que no puedo usar htmlenitities
) y me gustaría evitar la creación de scripts (inyecciones de JavaScript).Deshabilitar la ejecución de JavaScript en páginas específicas (HTML/PHP)
Ya utilizo HttpOnly-cookies para autenticación en el dominio principal solamente, mientras que el contenido del usuario solo se muestra en subdominios donde la cookie no se puede leer. El problema es que todavía hay demasiadas posibilidades para ejecutar JavaScript, por ejemplo, usando atributos de eventos como onclick
e Internet Explorer tiene incluso una propiedad en CSS para permitir ejecuciones de JavaScript (expression
) de las que nunca antes había oído hablar. Otra idea interesante de la que he leído, fue acerca de lanzar una excepción para bloquear el siguiente código. Una idea más sería definir una lista que contenga todas las etiquetas permitidas y, además, una matriz con cada nombre de atributo permitido, pero este es un trabajo muy difícil y supongo que esto no cubriría todas las posibles inyecciones.
Supongo que no soy la única persona que tiene este problema, por lo que alguien sabe una posibilidad que cubre todo posible código dañino, al menos en los navegadores modernos?
Un simple encabezado imaginario similar a X-Scripting: disabled
haría la vida mucho más fácil!
¿Alguna vez has pensado en bloquear las etiquetas 'script' y ciertos atributos en la entrada del usuario? –
A eso me refería con: "Una idea más sería definir una lista que contenga todas las etiquetas permitidas y, además, una matriz con cada nombre de atributo permitido, pero este es un trabajo muy difícil y creo que esto no cubriría todas las inyecciones posibles". (Así que, por ejemplo, permitiría etiquetas inofensivas como "div" o "span" y deshabilitaría atributos como "onclick", "onmouseover", pero esto no cubriría todas las inyecciones ya que los navegadores tienen diferentes propiedades y atributos específicos del navegador) –