FireFox - ни один из хэшей "sha256" в атрибуте целостности не соответствует содержимому подресурса - PullRequest
0 голосов
/ 25 мая 2018

Мы создали веб-сайт, который использует ресурсы cdnjs .Этот сайт был активен в течение нескольких месяцев, но у нас периодически возникают проблемы с ресурсами этого CDN и FireFox.

  • Ошибка в консоли для каждого ресурса CDN сценария / стиля:

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

  • Сообщение об ошибке на вкладке сети для каждого ресурса:

    Соединение, используемое для извлечения этого ресурса, было небезопасным

Ресурсы, с которыми у меня возникли проблемы, включают следующие элементы (как они отображаются на нашей веб-странице):

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.4/css/bootstrap-dialog.min.css" integrity="sha256-wstTM1F5dOf7cgnlRHIW3bmoRAAGh6jL7tMIvqTuFZE=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" integrity="sha256-yMjaV542P+q1RnH6XByCPDfUFhmOafWbeLPmqKh11zo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqtree/1.4.4/jqtree.min.css" integrity="sha256-ymsp1QFcwiJbIgAoSOkMtqe4GFczZH1KjXLq6y5f+QY=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.4/js/bootstrap-dialog.min.js" integrity="sha256-IpgnbT7iaNM6j9WjtXKI8VMJ272WM9VvFYkZdu1umOA=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment-with-locales.min.js" integrity="sha256-K+AZsAFjiBd4piqBmFzaxDsiQiHfREubm1ExNGW1JIA=" crossorigin="anonymous"></script>

Действия по воспроизведению

Вы можете воспроизвести проблему с одним из приведенных выше URL-адресов и поместить его непосредственно в URL-адрес браузера Firefox.Ресурс должен загрузиться в окне браузера, но после нажатия CTRL+F5 хотя бы один раз (может быть до 5 раз) появится ошибка.Я могу продублировать это с нескольких компьютеров, хотя мы находимся в Нидерландах, так что, может быть, проблема с синхронизацией или что-то подобное (не в моей компетенции)?

Этого не происходит с любыми другими ресурсами из других CDN, которые мы используем, например:

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

Мое окружение:

  • Windows 10 Pro 64bitисправлен до последней
  • FireFox 60.0.1 (64-разрядная версия)

Мой вопрос

Является ли эта проблема специфичной для cdnjs и они должны решить это, или это проблема с FireFox, или это проблема с тем, как мы запрашиваем ресурс?


В качестве примечания мы также регулярно тестируем наше программное обеспечение на Google ChromeMS Internet Explorer 11, MS Edge и Opera и никогда не сталкивались с этой проблемой в этих браузерах (или в любой другой).

Я уже создал сообщение вФорум Mozilla, но ответом было то, что это выходит за рамки рекомендации с рекомендацией опубликовать его на SO или представить ошибку на GitHub.Я не сделал последнего, я не уверен (пока), что это ошибка в FireFox.Я также представил проблему в репозитории cdnjs github .

1 Ответ

0 голосов
/ 07 июня 2018

TL; DR: аналогичная проблема в Linux (RHEL 7.3) с Firefox 45.6.0 была решена путем загрузки 60.0.2 с getfirefox.com.

Боюсь, что этовряд ли решит проблему @ Игоря, но у меня была очень похожая проблема, и я решил ее с помощью обновления Firefox;возможно, это поможет другим.

В моем случае я видел то же самое

Соединение, используемое для извлечения этого ресурса, было небезопасным

сообщение ввкладка Сеть веб-консоли не только для Cloudflare, но и для нескольких других сайтов:

Однако хром не изменился (как и рысь и кудри).

Учитывая сообщение об ошибке для сбоев, я ковырялся в Предпочтения -> Дополнительно -> Сертификаты -> Просмотр сертификатов и сразу же с подозрением относился ко всем просроченным (с 2014 года!) На вкладке Серверы, включаяwww.google.com.Попытки удалить их не увенчались успехом;они вернулись сразу же после повторного тестирования любого проблемного сайта в новой вкладке.

Каждое предложение на страницах справки Mozilla также не удавалось: ни прокси, ни антивирус, ни безопасный режим, ни профиль обновления, ни переход на бренд-новый профиль (также получил фиктивные сертификаты 2014 года, поэтому он четко прописан), отключить аппаратное ускорение, отключить предварительную выборку DNS и некоторые другие about:config хаки.Переустановка существующей версии Firefox через yum также не удалась, как и ручное удаление всех файлов sqlite и большинства соответствующих сайтов в storage/default (все в пределах $HOME/.mozilla/firefox/<profile>).Даже собственный Mozilla certutil не смог прочитать недавно отчеканенный cert8.db в новом чистом профиле:

$ certutil -L
certutil: function failed: SEC_ERROR_LEGACY_DATABASE: The certificate/key database is in an old, unsupported format.

Я даже пытался перезагрузить корневые сертификаты Firefox через опцию Import на странице расширенных настроек для 45.x, но текстовая версия, которую я нашел в репозитории Mercurial в Mozilla, явно не была понятна кнопкой импорта Firefox.(Или, может быть, так и было; обратная связь была нулевой. Но просроченные материалы на вкладке «Серверы» не исчезли.)

Я упоминаю все, что не работало в обоих случаях, потому что некоторые изэти действия помогли другим, которые сообщили о похожих проблемах, а также потому, что для прохождения всех возможностей (и нескольких промежуточных обсуждений с коллегами) потребовалось огромное количество времени.

В конечном счете, захват последнихБинарный Firefox через

и распаковка tarball в локальный каталог работали нормально, и это заняло все дваминуты для завершения и проверки.И старые, и новые профили работают нормально.И о чудо, вкладка «Серверы» полностью пуста от всех сертификатов, с истекшим сроком действия или нет.В моем случае я почти уверен, что это была проблема, и моя неспособность удалить поддельные сертификаты была ошибкой в ​​45.x.

...