Bootstrapcdn недавно изменил свои ссылки. Теперь это выглядит так:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ=="
crossorigin="anonymous">
Что означают атрибуты integrity
и crossorigin
? Как они влияют на загрузку таблицы стилей?
источник
Attribute integrity not allowed on element link at this point.
integrity
атрибуте. Но я скоро добавлю поддержку для него, как того требует github.com/validator/validator/issues/151 . Поэтому вы можете подписаться на эту проблему, чтобы получить уведомление, когда она появится.integrity
атрибут (я поддерживаю эту проверку).целостность - определяет хеш-значение ресурса (например, контрольной суммы), который должен соответствовать браузеру для его выполнения. Хеш гарантирует, что файл не был изменен и содержит ожидаемые данные. Таким образом, браузер не будет загружать разные (например, вредоносные) ресурсы. Представьте себе ситуацию, когда ваши файлы JavaScript были взломаны на CDN, и не было никакой возможности узнать это. Атрибут целостности предотвращает загрузку содержимого, которое не соответствует.
Неверный SRI будет заблокирован (Chrome Developer-Tools), независимо от перекрестного происхождения. Ниже NON-CORS случай, когда атрибут целостности не совпадает:
Целостность можно рассчитать, используя: https://www.srihash.org/ Или набрав в консоли ( ссылка ):
crossorigin - определяет параметры, используемые при загрузке ресурса с сервера из другого источника. (См. CORS (Обмен ресурсами между источниками) здесь: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS ). Это эффективно изменяет HTTP-запросы, отправленные браузером. Если добавлен атрибут «crossorigin» - это приведет к добавлению пары «ключ-значение origin: <ORIGIN>» в HTTP-запрос, как показано ниже.
crossorigin может быть установлен как «анонимный» или «использовать учетные данные». Оба приведут к добавлению источника: в запрос. Последний, однако, обеспечит проверку учетных данных. Отсутствие атрибута crossorigin в теге не приведет к отправке запроса без источника: пара ключ-значение.
Вот случай, когда запрашивается «use-credentials» из CDN:
Браузер может отменить запрос, если кроссориген неправильно установлен.
Ссылки
- https://www.w3.org/TR/cors/
- https://tools.ietf.org/html/rfc6454
- https://developer.mozilla.org/en-US/docs/Web/HTML / Элемент / ссылка
Блоги
- https://frederik-braun.com/using-subresource-integrity.html
- https://web-security.guru/en/web-security/subresource-integrity
источник
Технически, атрибут целостности помогает именно в этом - он позволяет правильно проверить источник данных. Таким образом, он просто позволяет браузеру проверять числа в правильном исходном файле с суммами, запрошенными исходным файлом, расположенным на сервере CDN.
Пройдя немного глубже, в случае установленного зашифрованного хеш-значения этого источника и его проверки на соответствие предварительно заданному значению в браузере - код выполняется, и пользовательский запрос успешно обрабатывается.
Атрибут Crossorigin помогает разработчикам оптимизировать показатели производительности CDN, одновременно защищая код сайта от вредоносных скриптов.
В частности, Crossorigin загружает программный код сайта в анонимном режиме, без загрузки файлов cookie или выполнения процедуры аутентификации. Таким образом, он предотвращает утечку пользовательских данных при первой загрузке сайта на определенном сервере CDN, и сетевые мошенники могут легко заменить адреса.
Источник: https://yon.fun/what-is-link-integrity-and-crossorigin/
источник