Hash de integridade de subrecurso
Subresource Integrity Hash
Calcula o atributo Subresource Integrity (sha256/384/512) de um script ou folha de estilo que você cola ou solta.
Um `<script src>` apontando para uma CDN é uma permissão permanente para essa CDN executar o código que quiser nos navegadores dos seus usuários. Um atributo Subresource Integrity a revoga: o navegador se recusa a executar um arquivo cujo hash não bate com o que você fixou.
Solte o arquivo exato
O script ou a folha de estilos que você vai servir. O hash é feito como está.
O hash é feito com WebCrypto no seu navegador — é o mesmo resumo que o navegador vai conferir. Não há campo de URL de propósito: buscar um arquivo remoto a partir desta página para calcular o hash seria barrado pelo CORS ou viraria um vetor de SSRF, e um navegador não consegue resolver e depois fixar um host como um servidor faz. Ponha aqui o arquivo que você vai servir.
Como usar
Forneça o arquivo ou a URL
Solte o arquivo exato que você vai publicar, ou busque uma URL. O hash é sobre os bytes, então um arquivo e uma URL que diferem em uma quebra de linha dão atributos diferentes.
Copie o atributo inteiro
A saída é `integrity="sha384-…"`. Cole-a na tag junto com `crossorigin="anonymous"` — sem isso, um recurso de outra origem é opaco e a integridade não pode ser verificada.
Fixe uma versão, não uma tag que se move
Um atributo integrity contra uma URL `@latest` quebra o site no dia em que a CDN publicar. Aponte para uma versão exata e atualize os dois juntos.
Perguntas frequentes
Qual algoritmo devo usar?
sha384 é a escolha habitual e o que a maioria das CDNs publica. sha256 é aceito e sha512 é mais forte, mas a diferença não é o ponto fraco deste desenho — fixar a versão errada é.
O script parou de carregar depois que adicionei o atributo.
Quase sempre uma de três coisas: o arquivo mudou na CDN, `crossorigin="anonymous"` está faltando, ou o hash foi tirado de um build diferente do que está sendo servido (um arquivo minificado contra um não minificado, por exemplo).
O SRI protege contra um script comprometido que sempre foi hostil?
Não. Ele garante que você recebe os bytes que fixou, nada mais. Se a versão que você fixou já tinha uma porta dos fundos, o SRI entrega fielmente essa porta dos fundos toda vez.
Pode receber de
Checksum de arquivo
File Checksum
Calcula o hash de arquivos de qualquer tamanho numa passagem em fluxo e compara o resultado com um valor esperado colado.
Gerador de CSP
CSP Builder
Monta uma Content-Security-Policy a partir de um formulário guiado ou de um relatório, e explica cada diretiva.
Gerador de senhas
Password Generator
Gera senhas aleatórias com regras de comprimento, conjunto de caracteres e caracteres ambíguos, em lote se preciso — nada é transmitido nem armazenado.
Gerador de frases-senha
Passphrase Generator
Monta uma frase-senha no estilo diceware a partir de uma lista de palavras, mostrando a entropia em bits.
Em seguida
Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.
Gerador de CSP
CSP Builder
Monta uma Content-Security-Policy a partir de um formulário guiado ou de um relatório, e explica cada diretiva.
Checksum de arquivo
File Checksum
Calcula o hash de arquivos de qualquer tamanho numa passagem em fluxo e compara o resultado com um valor esperado colado.
Análise de headers de segurança
Security Header Scan
Avalia os headers HSTS, CSP, frame, referrer e permissions de um site e mostra o que adicionar.
Verificador de link suspeito
Suspicious URL Check
Inspeciona a forma de um link antes de você abri-lo — caracteres parecidos, hosts em IP literal, truques com @, subdomínios profundos, portas estranhas, encurtadores — e, se pedir, segue os redirecionamentos e consulta a data de registro do domínio. Sem base de reputação: sinais, não veredito.
Codificar e decodificar Base64
Base64 Encoder & Decoder
Codifica e decodifica Base64 e Base64URL para texto ou arquivos, tratando UTF-8 corretamente.
Verificador de vazamento de senha
Breach Check
Verifica se uma senha aparece nos dados de vazamento do Have I Been Pwned, enviando do navegador apenas os cinco primeiros caracteres do hash SHA-1 dela (k-anonimato) — a senha inteira nunca sai do seu aparelho.