Saltar al contenido

Hash de integridad de subrecursos

Subresource Integrity Hash

Calcula el atributo Subresource Integrity (sha256, sha384 o sha512) de un script o una hoja de estilos que pegues o sueltes en la página.

Un `<script src>` que apunta a un CDN es un permiso permanente para que ese CDN ejecute el código que quiera en los navegadores de tus usuarios. Un atributo Subresource Integrity lo revoca: el navegador se niega a ejecutar un archivo cuyo hash no coincide con el que fijaste.

⚡ Local, con ayuda opcional del servidorsriintegritywebhash

Suelta el archivo exacto

El script o la hoja de estilos que vas a servir. Se calcula el hash tal cual.

Se calcula con WebCrypto en tu navegador: es el mismo resumen que el navegador comprobará después. No hay campo de URL a propósito, porque traer un archivo remoto desde esta página para calcular su hash acabaría bloqueado por CORS o convertido en un vector de SSRF, y un navegador no puede resolver y luego fijar un host como sí hace un servidor. Pon aquí el archivo que vas a servir.

Cómo se usa

  1. Dale el archivo o la URL

    Suelta el archivo exacto que vas a publicar, o descarga una URL. El hash es sobre los bytes, así que un archivo y una URL que difieren en un salto de línea dan atributos distintos.

  2. Copia el atributo entero

    La salida es `integrity="sha384-…"`. Pégalo en la etiqueta junto con `crossorigin="anonymous"`: sin eso, un recurso de otro origen es opaco y la integridad no se puede comprobar.

  3. Fija una versión, no una etiqueta móvil

    Un atributo integrity contra una URL `@latest` rompe el sitio el día que el CDN publica. Apunta a una versión exacta y actualiza las dos cosas juntas.

Preguntas frecuentes

¿Qué algoritmo debería usar?

sha384 es la elección habitual y lo que publica la mayoría de los CDN. sha256 se acepta y sha512 es más fuerte, pero la diferencia no es el punto débil de este diseño: fijar la versión equivocada sí lo es.

El script dejó de cargar después de añadirlo.

Casi siempre es una de tres cosas: el archivo cambió en el CDN, falta `crossorigin="anonymous"`, o el hash se tomó de una compilación distinta de la que se sirve (un archivo minificado frente a uno sin minificar, por ejemplo).

¿SRI protege contra un script comprometido que siempre fue hostil?

No. Te garantiza que recibes los bytes que fijaste, nada más. Si la versión que fijaste ya tenía una puerta trasera, SRI entrega fielmente esa puerta trasera cada vez.

Puede recibir de

Después

Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.

Constructor de políticas CSP

CSP Builder

Arma una cabecera Content-Security-Policy desde un formulario guiado o desde un informe de violaciones, y explica cada directiva.

Se ejecuta por completo en tu navegador

Suma de verificación de un archivo

File Checksum

Calcula el hash de archivos de cualquier tamaño en una pasada por flujo y lo compara con el valor esperado que pegues.

Se ejecuta por completo en tu navegador

Análisis de cabeceras de seguridad

Security Header Scan

Califica las cabeceras HSTS, CSP, de marcos, de referente y de permisos de un sitio y muestra cuáles faltan.

Usa nuestro servidor

Comprobar un enlace sospechoso

Suspicious URL Check

Examina la forma de un enlace antes de que lo abras —caracteres que imitan a otros, IP en lugar de dominio, trucos con @, subdominios profundos, puertos raros, acortadores— y, si lo pides, sigue sus redirecciones y consulta cuándo se registró el dominio; no consulta ninguna base de reputación.

Local, con ayuda opcional del servidor

Codificador y decodificador Base64

Base64 Encoder & Decoder

Codifica y decodifica Base64 y Base64URL, para texto o archivos, tratando UTF-8 correctamente.

Se ejecuta por completo en tu navegador

Comprobar si una contraseña fue filtrada

Breach Check

Comprueba si una contraseña aparece en los datos de filtraciones de Have I Been Pwned enviando solo los cinco primeros caracteres de su hash SHA-1 desde el navegador, por k-anonimato.

Se ejecuta por completo en tu navegador