Ir para o conteúdo principal
Bethemesh
GuiaBoas práticasIntermédio

Subresource Integrity (SRI): verificar a integridade dos recursos externos

Saiba como o SRI utiliza uma impressão digital criptográfica para verificar se um script ou uma folha de estilos externa corresponde ao ficheiro esperado.

Publicado 29 de agosto de 2026Leitura : 2 minPor Yann Bastien
Mostrar índice
  1. O princípio
  2. O SRI é adequado para recursos estáveis
  3. crossorigin pode ser necessário
  4. SRI e CSP são complementares

Carregar uma biblioteca a partir de um CDN é prático, mas introduz uma dependência externa. Subresource Integrity (SRI) permite ao navegador verificar se o ficheiro recebido corresponde exatamente à impressão digital esperada.

O princípio

Calcula-se uma impressão digital criptográfica de uma versão específica do ficheiro e adiciona-se esse valor ao atributo integrity da etiqueta correspondente. Se o conteúdo transferido não produzir a mesma impressão digital, o navegador recusa-se a utilizá-lo.

O gerador de hash SRI permite preparar este valor localmente.

O SRI é adequado para recursos estáveis

O mecanismo funciona bem com um recurso versionado e imutável. Se o fornecedor alterar o ficheiro mantendo o mesmo URL, a impressão digital muda e o recurso será bloqueado. É precisamente o comportamento pretendido para garantir a integridade, mas deve ser integrado no processo de atualização.

crossorigin pode ser necessário

Para recursos provenientes de outra origem, a configuração CORS e o atributo crossorigin devem ser compatíveis com o carregamento SRI. É portanto necessário testar o comportamento real, e não apenas copiar uma impressão digital.

SRI e CSP são complementares

A CSP responde sobretudo à pergunta «que origens e conteúdos são autorizados?». O SRI responde a «este ficheiro específico corresponde à versão esperada?». Uma origem autorizada pode ainda fornecer um ficheiro alterado; o SRI acrescenta então uma verificação de integridade.

Para compreender a diferença entre impressão digital, encriptação e comparação, continue com o guia Hash e integridade.

Este artigo foi útil?