Perché l'integrità delle risorse secondarie (SRI) è limitata a determinati file?

7

Sono piuttosto entusiasta delle funzionalità di integrità delle risorse secondarie (SRI). Ma perché si limita ai file JS e CSS? Ho provato a bloccare un file LESS (variante CSS), di cui il tag di integrità è stato ignorato da Firefox e Chrome.

Inoltre, comprendo che l'SRI è progettato principalmente per proteggere da modifiche indesiderate dei file, ospitate su fonti esterne come le reti di distribuzione dei contenuti (CDN). Ma dal momento che tutti amiamo la sicurezza a più livelli, perché non aggiungerlo in tutti i file inclusi nel browser (anche in hosting autonomo)?

Anche se fosse possibile modificare un file JS, è probabile (ma non sicuro) che si possa modificare anche il tag di integrità.

    
posta Bob Ortiz 16.03.2017 - 22:28
fonte

1 risposta

6

Perché è limitato alle risorse JS e CSS?

But, why is it only limited to JS and CSS files?

La specifica SRI W3C afferma:

The scheme specified here also applies to link and future versions of this specification are likely to expand this coverage.

Inoltre afferma:

A future revision of this specification is likely to include integrity support for all possible subresources, i.e., a, audio, embed, iframe, img, link, object, script, source, track, and video elements.

Sembra che questa sia solo la prima versione delle specifiche. Il repository github include anche un milestone riferimento a problemi che verranno affrontati dalla seconda versione della specifica. Ad esempio, esiste un problema di github riguardante l'aggiunta della possibilità di aggiungere l'integrità per i download.

I tried to pin a LESS (CSS variant) file, of which the integrity tag was ignored by Firefox and Chrome.

Sembra che seguano le specifiche alla lettera. La prima versione riguarda l'aggiunta dell'integrità per gli elementi HTML link e script , ma non per ogni attributo. La specifica menziona solo gestendo l'attributo integrity per l'elemento link quando rel="stylesheet" :

Whenever a user agent attempts to obtain a resource pointed to by a link element that has a rel attribute with the keyword of stylesheet

Guardando il Meno sito web , vediamo che fanno affidamento su link ma con rel="stylesheet/less" , quindi non fanno parte delle specifiche .

Forse potresti archiviare un problema sul loro repository github per la seconda versione?

Perché è limitato a risorse esterne?

why not add it on all browser included files (even self-hosted)?

Guardando le specifiche non sembra che facesse parte del loro modello di minaccia. Ecco il loro primo obiettivo:

Compromise of a third-party service should not automatically mean compromise of every site which includes its scripts.

Si potrebbe supporre che se un utente malintenzionato è in grado di modificare un file JavaScript auto-ospitato, probabilmente può fare di più. Certo, non significa che l'attaccante può modificare la parte HTML, ma l'attaccante nel modello non può modificare le risorse interne.

    
risposta data 13.04.2017 - 10:59
fonte

Leggi altre domande sui tag