Protegendo suas Aplicações Web com Integridade de Sub-recursos (SRI) e Calculadoras de Hash SRI
No desenvolvimento web moderno, raramente construímos tudo do zero. Dependemos de Redes de Entrega de Conteúdo (CDN) para hospedar nossas bibliotecas favoritas, como React, Vue ou Bootstrap. No entanto, essa dependência introduz um risco: e se a CDN for comprometida e o script que você está carregando for substituído por código malicioso?
É aqui que entra a Integridade de Sub-recursos (SRI). Este guia explica como o SRI funciona e como usar uma calculadora de hash SRI para manter seus usuários seguros.
1. O que é Integridade de Sub-recursos (SRI)?
A Integridade de Sub-recursos (SRI) é um recurso de segurança que permite aos navegadores verificar se os recursos que eles buscam (por exemplo, de uma CDN) são entregues sem manipulação inesperada.
Como Funciona
Quando você inclui um recurso em seu HTML, fornece um hash criptográfico desse recurso no atributo integrity. O navegador então:
- Busca o recurso.
- Calcula o hash do recurso buscado.
- Compara-o com o hash que você forneceu.
- Se eles coincidirem, o recurso é executado. Se não coincidirem, o navegador bloqueia o recurso.
A Sintaxe HTML
<script src="https://example.com/example-framework.js"
integrity="sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcOtpguf4Dez6GdrJCT9Wo+SWax9fEE99l"
crossorigin="anonymous"></script>
2. Usando uma Calculadora de Hash SRI
Para implementar o SRI, você precisa do hash criptográfico correto do arquivo que está carregando. Uma calculadora de hash SRI automatiza esse processo.
Algoritmos de Hash Comuns para SRI
- SHA-256: Seguro, mas com hashes um pouco mais curtos.
- SHA-384: O algoritmo mais recomendado para SRI (equilibrando segurança e comprimento).
- SHA-512: O mais seguro, resultando em hashes mais longos.
Passos para Gerar um Hash SRI
- Fornecer o Arquivo: Faça o upload da versão local do script ou forneça a URL do ativo da CDN.
- Selecionar Algoritmo: Escolha entre SHA-256, SHA-384 ou SHA-512.
- Gerar: A ferramenta produzirá uma string começando com o nome do algoritmo (ex:
sha384-...). - Copiar e Colar: Insira a string resultante no atributo
integrityda sua tag script ou link.
3. Por que o SRI é Crítico para a Segurança Web Moderna
Defesa Contra Comprometimento de CDN
Mesmo que uma CDN massiva seja hackeada, o SRI garante que seu site permaneça seguro. O código malicioso não corresponderá ao seu hash e o navegador simplesmente se recusará a executá-lo.
Conformidade e Confiança
O uso de SRI é uma prática recomendada por organizações de segurança como a OWASP. Isso demonstra aos seus usuários e clientes que você leva a sério a segurança dos dados deles.
Prevenindo Ataques "Man-in-the-Middle" (MITM)
O SRI protege usuários em redes comprometidas (como Wi-Fi público) de invasores que podem tentar injetar código malicioso no tráfego.
4. Solucionando Falhas de SRI
Se o seu recurso falhar ao carregar, você poderá ver um erro no console como:
None of the "integrity" hashes in the "integrity" attribute match the content of the subresource. (Nenhum dos hashes de integridade no atributo "integrity" corresponde ao conteúdo do sub-recurso.)
Causas Comuns:
- Hash Incorreto: Você usou a versão errada do arquivo ao gerar o hash.
- Atributo
crossoriginAusente: Para que o SRI funcione em solicitações de origem cruzada (cross-origin), o atributocrossorigin="anonymous"é obrigatório. - Compressão de CDN: Algumas CDNs podem modificar o conteúdo do arquivo (como minificação ou compressão on-the-fly), o que altera o hash. Certifique-se de estar gerando o hash exatamente do que o navegador recebe.
Resumo das Melhores Práticas de SRI
| Ação | Por quê? |
|---|---|
| Usar SHA-384 | Equilíbrio padrão da indústria entre velocidade e segurança. |
Sempre adicionar crossorigin |
Necessário para validação de SRI entre sites. |
| Auditar Scripts de Terceiros | Use SRI apenas para scripts em que você confia de fontes respeitáveis. |
| Automatizar a Geração de Hash | Use uma calculadora de SRI para evitar erros de digitação manual. |
Conclusão
A Integridade de Sub-recursos é uma maneira poderosa e de baixo custo de aumentar drasticamente a segurança da sua aplicação web. Ao usar uma calculadora de hash SRI como parte do seu processo de implantação, você pode proteger seu site e seus usuários de um dos vetores de ataque mais comuns na web moderna.
FAQ: Perguntas Frequentes
P: Posso usar SRI para meus próprios scripts internos?
A: Sim, embora seja menos crítico do que para scripts de terceiros. Ainda pode servir como uma verificação de integridade útil durante seu processo de build.
P: O que acontece se uma CDN atualizar a versão do script?
A: Se o conteúdo do arquivo mudar (mesmo um único caractere), o hash mudará. Você deve atualizar o atributo integrity sempre que atualizar a versão do script.
P: O SRI torna o carregamento da página mais lento?
A: O impacto no desempenho é insignificante. Os navegadores modernos calculam o hash muito rapidamente enquanto já estão processando o script.