Почему я не могу загружать файлы с моего локального компьютера (file: ///) с помощью sri?

У меня есть несколько веб-страниц, которые я пытаюсь загрузить в свой браузер с file:///, и у меня есть хэши целостности в JS и CSS.

JS и CSS не загружаются с хешем целостности, присутствующим в тегах <link> и <script>, но загружаются с удалением.

$ openssl dgst -sha384 -binary assets/css/bootstrap.min.css | openssl base64 -A
MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO

и у меня есть следующий тег <script>:

<link rel="stylesheet" href="assets/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO">

Есть ошибки на консоли?

phuzi 31.10.2018 12:47

Нет, в консоли ничего.

nc. 31.10.2018 13:06

В каких браузерах? Вы наблюдаете одно и то же поведение во всех браузерах - ресурсы не загружаются, в консоли нет ошибок?

sideshowbarker 31.10.2018 14:10

@sideshowbarker хороший вопрос. Я использовал Chrome, и это не сработало, но в FF он загрузился нормально. Затем я вышел и перезапустил Chrome и начал получать сообщения об ошибках CORS в консоли, поэтому я добавил атрибут crossorigin="anonymous", и ошибка исчезла, и я вижу, что файл загружается на вкладке «Сеть», но стили по-прежнему не применяются.

nc. 31.10.2018 14:39

Для Chrome вы можете отключить все свои расширения и попробовать еще раз.

sideshowbarker 31.10.2018 14:41
0
5
374
1

Ответы 1

Обычно хеш-значение, предоставленное для атрибута целостности, генерируется на основе содержимого файла. Поэтому убедитесь, что вы генерируете соответствующий хеш из файла assets / css / bootstrap.min.css. подробное объяснение можно найти в https://www.smashingmagazine.com/2019/04/understanding-subresource-integrity/

Другие вопросы по теме