Subresource Integrity (SRI) es un mecanismo de seguridad que permite a los navegadores web asegurar que los recursos que se obtienen de una fuente externa (como Content Delivery Networks o CDN) no han sido modificados inesperadamente. Funciona permitiendo a los desarrolladores especificar un hash criptográfico (generalmente SHA-256, SHA-384 o SHA-512) del recurso esperado en el atributo `integrity` de los elementos HTML `<script>` o `<link>`. Antes de ejecutar o aplicar el recurso, el navegador calcula su hash y lo compara con el valor proporcionado. Si los hashes no coinciden, el navegador bloquea la carga del recurso, mitigando ataques de inyección de código o manipulación de CDN.

SRI se implementa ampliamente en el desarrollo web moderno para proteger la integridad de bibliotecas JavaScript y hojas de estilo CSS. Por ejemplo, al incluir jQuery, Bootstrap o React desde un CDN público, los desarrolladores añaden el atributo `integrity` junto con el `crossorigin` (para habilitar CORS y permitir la verificación de integridad). Sitios web de alto perfil y plataformas de desarrollo web como Google, Cloudflare y jsDelivr promueven el uso de SRI y proporcionan los hashes necesarios para los recursos que alojan. Herramientas de construcción como Webpack o Gulp, a través de plugins, pueden automatizar la generación de estos hashes durante el proceso de 'build'.

Para un arquitecto de sistemas, SRI es crucial para fortalecer la postura de seguridad de las aplicaciones web, especialmente aquellas que dependen de terceros. Permite externalizar recursos a CDN para mejorar el rendimiento y la escalabilidad sin comprometer la seguridad frente a un posible compromiso del CDN o un ataque 'man-in-the-middle'. Sin embargo, implica un 'trade-off': cualquier cambio en el recurso alojado en el CDN (incluso una actualización menor o un 'hotfix') requerirá que el desarrollador actualice el hash SRI en el código fuente de la aplicación, lo que puede añadir fricción al proceso de despliegue y gestión de versiones. Un arquitecto debe sopesar el riesgo de un CDN comprometido frente a la sobrecarga operativa de mantener los hashes actualizados, y considerar estrategias de automatización para mitigar esta última.