¿Por qué la integridad de los sub recursos (SRI) solo se limita a ciertos archivos?

7

Estoy bastante entusiasmado con las características de Sub Resource Integrity (SRI). Pero, ¿por qué solo se limita a archivos JS y CSS? Intenté fijar un archivo MENOS (variante de CSS), del cual Firefox y Chrome ignoraron la etiqueta de integridad.

Además, entiendo que SRI está diseñado principalmente para proteger contra cambios no deseados de archivos, alojados en fuentes externas como redes de distribución de contenido (CDN). Pero como a todos nos gusta la seguridad en capas, ¿por qué no agregarla en todos los archivos incluidos en el navegador (incluso en el propio servidor)?

Incluso si pudieras cambiar un archivo JS, es probable (pero no seguro) que también puedas cambiar la etiqueta de integridad.

    
pregunta Bob Ortiz 16.03.2017 - 22:28
fuente

1 respuesta

6

¿Por qué está limitado a los recursos JS y CSS?

  

Pero, ¿por qué solo se limita a archivos JS y CSS?

La especificación SRI del W3C indica:

  

El esquema especificado aquí también se aplica al enlace y es probable que las futuras versiones de esta especificación amplíen esta cobertura.

También dice:

  

Es probable que una futura revisión de esta especificación incluya el soporte de integridad para todos los sub-recursos posibles, es decir, a, audio, incrustar, iframe, img, enlace, objeto, script, fuente, pista y elementos de video.

Parece que esta es solo la primera versión de la especificación. El repositorio github también incluye un hitos que hace referencia a los problemas que la segunda versión de la especificación tratará. Por ejemplo, hay un problema con github relacionado con la posibilidad de agregar la integridad para las descargas.

  

Intenté anclar un archivo MENOS (variante de CSS), del cual Firefox y Chrome ignoraron la etiqueta de integridad.

Parece que siguen la especificación de la letra. La primera versión trata de agregar la integridad de los elementos HTML link y script , pero no para cada atributo. La especificación sólo menciona el manejo del atributo integrity para el elemento link cuando rel="stylesheet" :

  

Cada vez que un agente de usuario intenta obtener un recurso apuntado por un elemento de enlace que tiene un atributo rel con la palabra clave de la hoja de estilo

Al mirar el Menos sitio web , vemos que dependen de link pero con rel="stylesheet/less" , por lo tanto no es parte de la especificación .

¿Quizás podrías presentar un problema en su repositorio de github para la segunda versión?

¿Por qué está limitado a recursos externos?

  

¿por qué no agregarlo en todos los archivos incluidos en el navegador (incluso en el propio servidor)?

Al observar la especificación, no parece que fuera parte de su modelo de amenaza. Aquí está su primer objetivo:

  

El compromiso de un servicio de terceros no debe significar automáticamente el compromiso de cada sitio que incluye sus scripts.

Se podría suponer que si un atacante puede modificar un archivo JavaScript auto hospedado, es probable que pueda hacer más. Claro, no significa que el atacante pueda modificar la parte HTML, pero el atacante en su modelo no puede modificar los recursos internos.

    
respondido por el Ronny 13.04.2017 - 10:59
fuente

Lea otras preguntas en las etiquetas