Атрибут целостности CDN иногда не работает в Firefox

Я использую несколько ссылок CDN в своем веб-приложении для javascript и CSS, например:

 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"
        integrity="sha384-I6F5OKECLVtK/BL+8iSLDEHowSAfUo76ZL9+kGAgTRdiByINKJaqTPH/QVNS1VDb"
        crossorigin="anonymous"></script>

Обычно все работает нормально, но иногда я получаю это сообщение в консоли Firebug:

Ни один из хэшей «sha256» в атрибуте целостности не соответствует содержимому подресурса.

Если это произойдет, мой javascript не загружается, и мое приложение не работает. Простое обновление решит эту проблему. Вместо того, чтобы избавляться от ссылок CDN и размещать файлы самостоятельно, я хотел бы это исправить. Это общая проблема?


person micksp    schedule 09.09.2016    source источник
comment
Почему бы вам не использовать просто: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"</script>   -  person Peacefull    schedule 09.09.2016
comment
потому что атрибут целостности позволяет браузерам проверять, не был ли загруженный файл подделан. См. stackoverflow.com/questions/ 32039568/   -  person micksp    schedule 09.09.2016
comment
Спасибо, но увы: хэш, содержащийся в атрибуте целостности, не удалось расшифровать.   -  person micksp    schedule 09.09.2016
comment
Сайт jquery дает мне это: ‹script src=code.jquery.com/jquery -2.2.4.min.js целостность=sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44= crossorigin=anonymous›‹/script› Кажется, работает. Может быть, это облачная штука. Я попробую заменить все остальные хосты CDN, используя кодировку SHA256.   -  person micksp    schedule 09.09.2016
comment
Да, это хорошая вещь, чтобы обновить источник CDN.   -  person Peacefull    schedule 09.09.2016
comment
Не работает. Может баг фаерфокса?   -  person micksp    schedule 09.09.2016
comment
Если вы откроете его прямо в своем веб-браузере, это сработает?   -  person Peacefull    schedule 09.09.2016


Ответы (2)


Одним из возможных объяснений этого является то, что ваше системное время достаточно отключено. Я запускал Debian в экземпляре VirtualBox. Я несколько раз переводил хост-машину в спящий режим, не касаясь снова виртуальной машины. Именно тогда я заметил, что некоторые веб-страницы не загружаются должным образом в Firefox внутри виртуальной машины. Как только я попал сюда, мне пришло в голову проверить системное время. Конечно же, это было выключено почти на 2 часа. ntp не был установлен, поэтому я установил этот пакет: sudo aptitude install ntp. Я проверил, что дата/время были обновлены с помощью date, а затем снова протестировал Firefox. Проблемные веб-страницы (включая эту) работали.

person bambams    schedule 06.05.2017

Убедитесь, что ваше сетевое соединение работает, или если ваш браузер настроен на использование сетевого прокси, что он тоже работает.

Я видел это сообщение, когда загружал html локально (например, «Файл» -> «Открыть файл») в браузере, где проверка целостности не удалась, потому что в то время у меня не работал сетевой прокси (через туннель ssh). Как только я разрешал свое сетевое подключение, страница загружалась, и эти сообщения исчезали (конечно, при условии, что значения атрибута целостности верны).

person Stephen Gornick    schedule 03.01.2017