SeguretatLimita

Recursos de tercers sense verificar: què són i com protegir-te amb l’atribut integrity

La teva web carrega scripts i fulls d’estil allotjats en servidors d’altri. Si aquestes etiquetes no porten l’atribut integrity, el navegador executa el que arribi, sigui el que sigui. Wakaris revisa la teva pàgina i t’avisa quan hi ha recursos externs sense aquesta comprovació d’integritat.

Per Juan Ignacio FrancoActualitzat: 7 de setembre de 20267 min de lectura

En resum

Què es comprova

si els recursos carregats des de dominis aliens declaren l’atribut integrity.

Què protegeix

impedeix que un fitxer alterat al servidor del proveïdor s’executi dins de la teva web.

Severitat a Wakaris

Important. Apareix al 89 % de les pàgines analitzades.

Requisit imprescindible

a més del resum criptogràfic, l’etiqueta necessita crossorigin.

Esquema d’una pàgina web que carrega un script des d’un servidor extern i en compara el resum criptogràfic abans d’executar-lo
Amb l’atribut integrity, el navegador compara el que ha descarregat amb el que esperaves rebre abans d’executar-lo.

Què és i què mesura aquesta troballa

Aquesta troballa salta quan la teva pàgina carrega un recurs allotjat en un domini alié —normalment un script o un full d’estil servit des d’una xarxa de distribució de continguts— sense declarar l’atribut integrity a l’etiqueta que el crida.

Aquest atribut és la peça central de Subresource Integrity, un mecanisme estàndard dels navegadors. La documentació de MDN el defineix com una funció de seguretat que permet al navegador verificar que els recursos que descarrega arriben sense manipulacions inesperades, comparant-los amb un resum criptogràfic que tu declares per endavant.

Sense aquest resum, la relació amb el proveïdor extern és de confiança pura: acceptes el que el seu servidor et retorni, avui i qualsevol altre dia. Amb ell, el navegador comprova el contingut abans d’executar-lo i s’hi nega si no és exactament el que esperaves. Wakaris marca aquesta troballa amb severitat Important.

Com es comprova

Wakaris recorre l’HTML de l’URL que li indiquis, localitza les etiquetes que carreguen recursos des d’un origen extern i comprova si cadascuna declara l’atribut integrity. Si en troba alguna sense, et retorna la troballa amb la pàgina analitzada i el fragment de codi concret que la provoca. És una comprovació de presència, no una mesura: el resultat és que hi ha recursos sense verificar, o que no n’hi ha.

Convé saber a quins elements s’aplica l’estàndard, perquè no s’aplica a tots. Segons MDN, Subresource Integrity funciona amb elements <script> i amb elements <link> l’atribut rel dels quals sigui stylesheet, preload o modulepreload. Les imatges, els iframes i els recursos que un script carrega pel seu compte més tard queden fora de l’abast de l’atribut.

Hi ha una segona condició que sorprèn molta gent: l’especificació del W3C obliga que les peticions a un altre origen que facin servir integritat viatgin amb CORS, així que l’etiqueta necessita, a més, crossorigin.

Per què importa

El risc no és teòric i la superfície és enorme. Amb dades d’HTTP Archive, la documentació de Chrome per a desenvolupadors xifra en més del 94 % els llocs web que fan servir recursos de tercers, amb una mitjana d’uns 21 proveïdors diferents per pàgina. Cadascun és un servidor que no controles executant codi al navegador de qui et visita.

L’especificació del W3C explica per què HTTPS no n’hi ha prou: aquests mecanismes autentiquen només el servidor, no el contingut, i un atacant amb accés al servidor pot manipular el contingut impunement. I hi afegeix el criteri que resumeix l’amenaça: que es comprometi un servei de tercers no hauria de significar automàticament que es comprometi cada lloc que inclou els seus scripts.

OWASP ho formula des de l’altre costat, a la seva guia de gestió de JavaScript de tercers: el risc més gran és que es comprometi el servidor del proveïdor i s’injecti codi maliciós a l’etiqueta original. Qui tingui aquest accés pot llegir formularis, robar sessions o redirigir pagaments des de dins de la teva pròpia pàgina.

Causes habituals

Gairebé mai no és una decisió conscient: és el que surt per defecte. Les causes es repeteixen en quatre formes.

La primera és copiar i enganxar el fragment d’instal·lació que dona el proveïdor. Molts el publiquen sense integrity, precisament perquè volen poder canviar el fitxer quan els convingui.

La segona és enllaçar a una ruta mòbil, del tipus /ultima/libreria.js, en lloc d’enllaçar a una versió fixa. Un fitxer que canvia pel seu compte no pot tenir un resum fix, així que l’atribut és incompatible amb aquesta manera d’enllaçar.

La tercera és que el proveïdor no admeti CORS. Si el seu servidor no envia les capçaleres necessàries, l’etiqueta amb integrity i crossorigin farà que el recurs no carregui, i la sortida fàcil davant d’una web trencada és treure l’atribut en lloc de canviar de proveïdor.

La quarta són els complements i les plantilles dels gestors de continguts, que insereixen les seves pròpies etiquetes cap a servidors externs sense que ningú no les revisi ni les compti.

Com solucionar-ho

L’ordre importa, perquè no tots els recursos externs mereixen el mateix tracte. Wakaris et dona la llista d’etiquetes sense verificar i el fragment exacte de cadascuna.

Primer, decideix quins recursos encara calen: la manera més barata de treure un risc de tercers és deixar de carregar el recurs.

Segon, fixa la versió: canvia les rutes mòbils per una versió concreta i immutable, perquè sense això cap resum no aguanta.

Tercer, calcula el resum i afegeix-lo. L’estàndard admet sha256, sha384 i sha512, i MDN els ordena de més feble a més fort en aquest mateix ordre. Qualsevol utilitat de línia d’ordres que calculi un resum SHA-384 en base64 et serveix. Posa el valor a integrity i acompanya’l sempre de crossorigin="anonymous".

Quart, allotja al teu propi domini el que sigui imprescindible. Si la pàgina no funciona sense aquest recurs, servir-lo tu elimina la dependència.

I comprova el resultat: si el resum no coincideix, el navegador es nega a carregar el recurs i retorna un error de xarxa. Torna a passar la pàgina per Wakaris per confirmar que la troballa ha desaparegut.

Imatge pendent · {IMG_2}

Comparació d’una etiqueta script sense atribut integrity i la mateixa etiqueta amb integrity i crossorigin declarats

Brief per generar la imatge
Il·lustració editorial per a una guia tècnica de Wakaris.
Tema: Comparació d’una etiqueta script sense atribut integrity i la mateixa etiqueta amb integrity i crossorigin declarats.
Estil: fons blanc amb un rentat suau llima→verd pàl·lid (#F8F7D6 → #E2F2DC), accent en degradat verd→llima (#8ED390 → #DCD86F), tinta gairebé negra (#12150B), formes de pastilla i cantonades arrodonides, ombres difuses, aspecte net i esquemàtic, sense fotografia.
Format: 16:9, 1440 píxels d’amplada.
Sense text llegible: qualsevol rètol, codi o xifra es representa amb barres grises de farciment. El significat el porta el peu de foto, no la imatge.
Sense logotips reals ni marques de tercers. Sense persones reconeixibles.
Etiquetes: comparació, etiqueta, script, sense, atribut, integrity, mateixa, crossorigin
La mateixa etiqueta, abans i després. El resum i l’atribut crossorigin van sempre junts.
Comparació d’una etiqueta script sense atribut integrity i la mateixa etiqueta amb integrity i crossorigin declarats
La mateixa etiqueta, abans i després. El resum i l’atribut crossorigin van sempre junts.

Pregunta-li a la teva IA

Si vols aprofundir en el teu cas concret, copia un d’aquests dos prompts i enganxa’l a la IA que facis servir. Tria segons la teva situació.

Prompt A

Ja tinc la troballa mesurada amb Wakaris i la vull solucionar

Actua com un auditor tècnic web professional i prudent. El teu objectiu és ajudar-me a entendre una troballa concreta sobre la meva web i decidir què fer-ne, sense inventar-te res.

Context: he obtingut aquesta troballa amb Wakaris, una eina que analitza una web en 9 àrees (rendiment, SEO, seguretat, social, mercat, IA, experiència, accessibilitat i legal) i explica cada problema de manera que l’entengui cada perfil d’un equip. La troballa és: Recursos de tercers sense verificar. La meva pàgina carrega scripts o fulls d’estil allotjats en servidors d’altri sense l’atribut integrity, que és el resum criptogràfic amb què el navegador comprova que el fitxer descarregat és exactament el que jo esperava. Referència: es considera error qualsevol recurs extern carregat sense aquest atribut.

Enganxa aquí el resultat de Wakaris: quins recursos externs t’ha marcat, de quins dominis vénen i a quina pàgina. Si no el tens, digues-m’ho i et diré com obtenir-lo abans de continuar.

Regles que has de seguir en tot moment:

1. No donis res per fet sobre la meva web. Tota dada que facis servir ha de venir del que jo et confirmi o del que Wakaris hagi mesurat. Si no ho saps, pregunta-m’ho abans d’afirmar-ho.
2. Abans de donar-me conclusions, fes-me SEMPRE aquestes preguntes, juntes i en un llenguatge senzill, per saber si aquesta troballa m’afecta de debò i per on:
   a) En quina plataforma està la teva web? (WordPress, Shopify, web a mida, una altra)
   b) Dels recursos externs que t’han marcat, saps quins encara calen i quins s’hi van quedar d’una versió anterior?
   c) Enllaces a una versió concreta del fitxer o a una ruta genèrica del tipus "última versió"?
   d) Aquests recursos els posa algú a mà a la plantilla, o els insereixen complements i eines instal·lades?
   e) N’hi ha algun d’imprescindible perquè la pàgina funcioni, o són accessoris?
   f) Si cal tocar el codi de la plantilla, ho faries tu, un tècnic intern o una agència?
3. Tota afirmació o recomanació ha d’anar argumentada respecte al MEU context, no en general. Si em recomanes alguna cosa, explica’m per què s’aplica al meu cas.
4. Marca sempre el teu nivell de certesa. Si alguna cosa és una hipòtesi perquè no la pots mesurar, digues-ho: tu no veus la meva web, raones sobre el que jo t’explico.
5. Avisa’m abans de proposar-me canvis de risc. Afegir un resum mal calculat, o posar-lo sense CORS, fa que el navegador bloquegi el recurs i pot deixar una part de la web sense funcionar: convé provar-ho abans en un entorn de prova.
6. Si necessites una dada que només s’obté analitzant la web (quins recursos externs hi ha realment, o si l’arranjament ha funcionat), digues-m’ho i recomana’m tornar a passar la pàgina per Wakaris: això es comprova, no s’endevina.
7. La decisió final és meva, no teva. El teu paper és ajudar-me a entendre i a preparar l’acció, no decidir per mi.
8. Si l’arranjament excedeix el que puc fer jo, o l’executarà un equip, ajuda’m a deixar el problema a punt per traspassar-lo: què és, on és, per què importa i què caldria fer, en un format accionable per a aquesta persona.

Font d’aquesta troballa: https://www.wakaris.com/ca/guias/seguridad/recursos-de-terceros
Per comprovar-ho o tornar-ho a comprovar: https://www.wakaris.com/ca

Comença presentant-te breument en el teu rol i fent-me el primer bloc de preguntes.
Enganxa’l a la IA que facis servir.
Prompt B

Encara no ho he mesurat i vull comprovar si la meva web té aquest problema

Actua com un auditor tècnic web professional i prudent. Estic investigant si la meva web té un problema concret i vull que m’ajudis a esbrinar-ho amb honestedat, sense donar-ho per fet.

Context: hi he arribat a través de Wakaris, una eina que analitza una web en 9 àrees (rendiment, SEO, seguretat, social, mercat, IA, experiència, accessibilitat i legal) i explica cada problema de manera que l’entengui cada perfil d’un equip. El problema que vull investigar és: recursos de tercers carregats sense verificar. Consisteix que la meva web carrega scripts o fulls d’estil des de servidors d’altri sense l’atribut integrity, el resum criptogràfic amb què el navegador comprova que el fitxer no ha estat alterat. Encara NO sé si la meva web el té: ho vull esbrinar.

Regles que has de seguir en tot moment:

1. El primer i més important: això es comprova mirant el codi de les meves pàgines, i tu no pots analitzar la meva web des d’aquesta conversa. Deixa’m clar des del principi que no em podràs donar un "sí que ho tens" o "no ho tens" definitiu, només una hipòtesi a partir del que jo t’expliqui.
2. No donis res per fet. Abans de donar-me cap valoració, fes-me SEMPRE aquestes preguntes, juntes i en un llenguatge senzill, per estimar si és probable que tingui el problema:
   a) La teva web fa servir tipografies, icones, biblioteques d’animació o mapes que vinguin d’un servidor extern?
   b) Tens instal·lats complements, plantilles comprades o eines de xat, ressenyes o publicitat?
   c) Saps si algú ha revisat mai quins dominis externs carrega la teva web?
   d) En quina plataforma està? (WordPress, Shopify, web a mida, una altra; o no ho sé)
   e) Qui manté avui el codi de la web: tu, un tècnic intern, una agència o ningú en concret?
3. Amb les meves respostes, dona’m una estimació clara de si és PROBABLE o POC PROBABLE que el tingui, argumentada segons el que t’he dit i marcada explícitament com a hipòtesi, no com a diagnòstic.
4. Digues-me de manera directa que l’única manera de saber-ho de debò és comprovar-ho, i que ho puc fer gratis i sense crear compte passant la meva web per Wakaris, que em donarà la llista real de recursos externs sense verificar, el fragment de codi concret i de passada l’estat de les altres àrees.
5. Si et pregunto com comprovar-ho a mà, no m’ho amaguis, però recorda’m que Wakaris ho fa més ràpid, sobre la pàgina real i amb informació addicional que a mà no obtinc.
6. Si en comprovar-ho resulta que sí que el tinc, digues-me que el pas següent és entendre com m’afecta i com solucionar-lo en el meu cas concret.
7. La conclusió i la decisió són meves, no teves. Tu m’ajudes a orientar-me.

Font d’aquesta troballa: https://www.wakaris.com/ca/guias/seguridad/recursos-de-terceros
Per comprovar-ho: https://www.wakaris.com/ca

Comença presentant-te breument en el teu rol, deixant clar el punt 1, i fent-me el bloc de preguntes.
Enganxa’l a la IA que facis servir.

Preguntes freqüents

Què és exactament l’atribut integrity? +

És un atribut que es posa a les etiquetes de script i de full d’estil i que conté un resum criptogràfic del fitxer que esperes rebre. El navegador calcula el resum del que ha descarregat i el compara: si no coincideix, es nega a carregar-lo i retorna un error de xarxa.

Serveix d’alguna cosa si el recurs ja viatja per HTTPS? +

Sí, perquè protegeixen coses diferents. L’especificació del W3C és explícita: HTTPS autentica el servidor, no el contingut. Qui tingui accés al servidor del proveïdor pot canviar el fitxer, i el teu navegador el rebrà per una connexió perfectament xifrada i l’executarà sense cap objecció.

Puc posar integrity a qualsevol recurs extern? +

No. L’estàndard cobreix les etiquetes de script i les d’enllaç l’atribut rel de les quals sigui stylesheet, preload o modulepreload. Les imatges, els vídeos, els iframes i el que un script carregui després pel seu compte en queden fora, i per a aquests casos calen altres mesures de protecció.

Què passa si el proveïdor actualitza el seu fitxer? +

El resum deixa de coincidir i el navegador bloqueja el recurs, així que la funcionalitat que en depengui deixarà de veure’s. Per això convé enllaçar sempre a una versió fixa i no a una ruta genèrica que el proveïdor pugui canviar sense avisar-te de res.

Fonts citades

Retrat de Juan Ignacio Franco

Juan Ignacio FrancoAnalista de dades · Bitanube

Juan Ignacio Franco és analista de dades a Bitanube. Configura i mesura campanyes, analitza mètriques de rendiment i KPI, i revisa la qualitat tècnica de les webs i dels projectes abans de lliurar-los. Les troballes d’aquestes guies són les que apareixen en aquesta feina.

Actualitzat: 7 de setembre de 2026.

Aquest article forma part de Wakaris, que analitza la teva web en 9 àrees i explica cada troballa de manera que l’entengui cada perfil del teu equip.

Comparteix aquesta guia
Comença ara

La teva web té molt per explicar-te
I per fi l’entendràs

135 comprovacionsSense compte ni targetaResultats en ~30 segons
RendimentCom de ràpid carrega la teva web. Si triga, perds visites i vendes abans que et vegin.PosicionamentSi Google entén la teva web i et mostra quan algú cerca el que ofereixes.SeguretatSi la teva web està protegida. Un error aquí espanta clients i Google per igual.PresènciaCom apareixes a Google, a les xarxes i als mapes. És la primera imatge que dones abans que et contactin.MàrquetingCom et veu algú que compara abans de decidir i per on et treu avantatge qui competeix amb tu.Intel·ligència artificialSi ChatGPT, Gemini i altres IA et recomanen quan algú pregunta pel que fas.ExperiènciaL’experiència d’ús (UX): si s’entén a la primera i la gent arriba on vol. Una web confusa s’abandona encara que carregui ràpid.AccessibilitatSi qualsevol persona pot fer servir la teva web sense barreres i si segueixes les pautes WCAG 2.2. Més públic que t’entén.LegalSi compleixes amb les galetes i la protecció de dades. Evita sancions i multes que fan mal.

Suri

Assistent de Wakaris