Logo David Burdelak
Słownik · Cyberbezpieczeństwo

Co to jest Subresource Integrity?

Ostatnia aktualizacja:

Subresource Integrity (SRI) to mechanizm przeglądarki, który sprawdza integralność zasobów ładowanych z zewnątrz, takich jak skrypty i style z CDN. Przeglądarka porównuje skrót pobranego pliku z podanym w atrybucie integrity i odrzuca zasób, jeśli się nie zgadza.

Jak zapisać SRI?

<script src="https://cdn.example/biblioteka.min.js"
  integrity="sha384-..."
  crossorigin="anonymous"></script>

Skrót generuje się z pliku (np. poleceniem openssl dgst -sha384 -binary) lub za pomocą narzędzi online. Dokumentacja jest dostępna w MDN.

Przed czym chroni?

Przed sytuacją, gdy CDN lub dostawca biblioteki zostanie zhakowany i do pliku trafi złośliwy kod. Bez SRI przeglądarka wykona zmienioną wersję, a z SRI zablokuje ją, bo skrót się nie zgadza. To jedna z metod ochrony przed atakami na łańcuch dostaw.

Ograniczenia

  • nie działa dla zasobów, które zmieniają się dynamicznie (np. skrypt analityczny aktualizowany przez dostawcę),
  • przy aktualizacji pliku trzeba zmienić skrót,
  • wymaga poprawnych nagłówków CORS po stronie CDN.

Powiązane pojęcia

Wszystkie hasła z kategorii Cyberbezpieczeństwo