Bootstrapcdn ostatnio zmienił swoje linki. Teraz wygląda to tak:
<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">
Co oznaczają atrybuty integrity
i crossorigin
? Jak wpływają na ładowanie arkusza stylów?
źródło
Attribute integrity not allowed on element link at this point.
integrity
atrybucie. Ale wkrótce dodam obsługę tego, zgodnie z żądaniem w github.com/validator/validator/issues/151 . Możesz więc zasubskrybować ten problem, aby otrzymywać powiadomienia o wylądowaniu.integrity
atrybut (jestem opiekunem tego kontrolera).integralność - określa wartość skrótu zasobu (np. sumy kontrolnej), którą należy dopasować, aby przeglądarka go wykonała. Hash zapewnia, że plik nie został zmodyfikowany i zawiera oczekiwane dane. W ten sposób przeglądarka nie będzie ładować różnych (np. Złośliwych) zasobów. Wyobraź sobie sytuację, w której twoje pliki JavaScript zostały zhakowane w CDN i nie było możliwości, aby to wiedzieć. Atrybut integralności zapobiega ładowaniu treści, które nie są zgodne.
Nieprawidłowy SRI zostanie zablokowany (narzędzia dla programistów Chrome), niezależnie od pochodzenia. Poniżej przypadku NON-CORS, gdy atrybut integralności nie jest zgodny:
Integralność można obliczyć za pomocą: https://www.srihash.org/ Lub wpisując w konsoli ( link ):
crossorigin - określa opcje używane, gdy zasób jest ładowany z serwera innego pochodzenia. (Zobacz CORS (wspólne udostępnianie zasobów) tutaj: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS ). Skutecznie zmienia żądania HTTP wysyłane przez przeglądarkę. Jeśli zostanie dodany atrybut „crossorigin” - spowoduje to dodanie pary klucz-wartość pochodzenia <ORIGIN> do żądania HTTP, jak pokazano poniżej.
crossorigin może być ustawiony na „anonimowy” lub „poświadczenia użytkowania”. Oba spowodują dodanie pochodzenia: do żądania. Ten ostatni zapewni jednak sprawdzenie poświadczeń. Brak atrybutu crossorigin w tagu spowoduje wysłanie żądania bez źródła: pary klucz-wartość.
Oto przypadek, gdy żądamy „poświadczeń użytkowania” od CDN:
Przeglądarka może anulować żądanie, jeśli niepoprawnie ustawiono crossorigin.
Linki
- https://www.w3.org/TR/cors/
- https://tools.ietf.org/html/rfc6454
- https://developer.mozilla.org/en-US/docs/Web/HTML / Element / link
Blogi
- https://frederik-braun.com/using-subresource-integrity.html
- https://web-security.guru/en/web-security/subresource-integrity
źródło
Technicznie atrybut Integrity pomaga właśnie w tym - umożliwia prawidłową weryfikację źródła danych. Oznacza to, że pozwala jedynie przeglądarce zweryfikować liczby w odpowiednim pliku źródłowym z kwotami żądanymi przez plik źródłowy znajdujący się na serwerze CDN.
Sięgając nieco głębiej, w przypadku ustalonej zaszyfrowanej wartości skrótu tego źródła i jej sprawdzonej zgodności z predefiniowaną wartością w przeglądarce - kod jest wykonywany, a żądanie użytkownika jest pomyślnie przetwarzane.
Atrybut Crossorigin pomaga programistom zoptymalizować wydajność CDN, chroniąc jednocześnie kod witryny przed złośliwymi skryptami.
W szczególności Crossorigin pobiera kod programu witryny w trybie anonimowym, bez pobierania plików cookie ani wykonywania procedury uwierzytelniania. W ten sposób zapobiega wyciekom danych użytkownika podczas pierwszego ładowania strony na konkretny serwer CDN, który oszustów sieciowych może łatwo zastąpić adresy.
Źródło: https://yon.fun/what-is-link-integrity-and-crossorigin/
źródło