Autor Zpráva
pajadvorak
Profil
Dobrý den,

marně se snažím na doméně nastavit CORS hlavičky pro JS scripty z CDN.

V htaccess mám napsáno toto:
<FilesMatch "\.(js)$">
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "*"
    </IfModule>
</FilesMatch>

A JS takto (mám tam více JS z více domén):
<script nonce="<?=$nonce?>" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js" integrity="sha384-YGnnOBKslPJVs35GG0TtAZ4uO7BHpHlqJhs0XK3k6cuVb6EBtl+8xcvIIOKV5wB+" crossorigin="anonymous"></script>

Při otestování na mozilla.org mi to stále hlásí problém:
observatory.mozilla.org/analyze
Subresource Integrity (SRI) not implemented, but all external scripts are loaded over HTTPS

Věděl by někdo, jak to správně nastavit? Děkuji.
Firibix
Profil
Reakce na pajudvoraka:
Hlavička Access-Control-Allow-Origin určuje, jaké domény mohou do svých stránek vložit zdroj (např. stáhnout AJAXem nebo vložit script tagem se SRI hashem), který tu hlavičku vrací. Tvůj .htaccess nastavuje, že JavaScriptové soubory hostované na tvojí doméně půjdou načíst z kterékoliv jiné domény. Tedy pokud chceš vkládat skript z cdn.jsdelivr.net, musí CORS hlavičky správně nastavit jejich server.

Jsi si jistý, že všechny externí JS soubory mají správné atributy integrity a crossorigin? Nepožaduje náhodou Mozilla Observatory, abys měl SRI i u skriptů na stejné doméně? Konzole prohlížeče na inkriminované stránce nehlásí žádné chyby? V Observatory není žádný detailnější popis problému?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0