SSL Sertifikası

Subresource Integrity (SRI) Kullanımı

SRI, CDN'den yüklenen script ve stil dosyalarının değiştirilip değiştirilmediğini hash ile doğrular. integrity niteliğinin kullanımı ve hash üretme.

Subresource Integrity (SRI), harici bir kaynaktan (ör. CDN) yüklenen JavaScript veya CSS dosyasının beklenen içerikle birebir aynı olduğunu tarayıcıya doğrulatan bir mekanizmadır. CDN ele geçirilse veya dosya değiştirilse bile hash uyuşmadığı için tarayıcı dosyayı çalıştırmaz.

Nasıl çalışır?

HTML etiketine dosyanın kriptografik özeti integrity niteliği olarak eklenir. Tarayıcı dosyayı indirir, özetini hesaplar ve karşılaştırır; eşleşmezse kaynağı engeller. Desteklenen algoritmalar SHA-256, SHA-384 ve SHA-512'dir; SHA-384 yaygın tercihtir.

Kullanım

<script src="https://cdn.ornek.com/kutuphane.min.js"
        integrity="sha384-ÖZET_BURAYA"
        crossorigin="anonymous"></script>

crossorigin="anonymous" niteliği, farklı alan adındaki kaynaklarda hash kontrolünün çalışması için gereklidir; ayrıca CDN'in uygun CORS başlığı göndermesi gerekir.

Hash üretme

  1. Dosyayı indirin.
  2. Özeti hesaplayın:
openssl dgst -sha384 -binary kutuphane.min.js | openssl base64 -A
  1. Çıktının başına sha384- ekleyip integrity niteliğine yazın.
  2. Sayfayı yenileyip konsolda hata olmadığını kontrol edin.

Dikkat edilecekler

  • Sürüm sabitleyin: "latest" gibi değişen adreslerde dosya her güncellendiğinde hash tutmaz ve kaynak engellenir.
  • Dinamik olarak içeriği değişen üçüncü taraf script'lere (reklam, analitik) SRI uygulanamaz.
  • Hash hatasında tarayıcı konsolunda "Failed to find a valid digest in the 'integrity' attribute" türünde bir mesaj görülür.
  • SRI'yi CSP ile birleştirmek kaynak kısıtlamasını güçlendirir.

Ne zaman gerekli değil?

Kendi sunucunuzdan sunduğunuz, aynı kaynaktan gelen dosyalarda SRI'ye genellikle gerek yoktur, çünkü dosya zaten sizin kontrolünüzdedir. Asıl değer, kontrolünüz dışındaki CDN ve üçüncü taraf kütüphanelerde ortaya çıkar. Derleme sürecinize hash üretimini ekleyerek güncellemelerde manuel hata riskini azaltın ve hash'leri sürüm numarasıyla birlikte belgeleyin.

SRI, bütünlüğü doğrular ancak kaynağın zararsız olduğunu garanti etmez; bu yüzden güvendiğiniz sürümü hash'lemelisiniz. Sayfalarınızın HTTPS'le sunulması bu önlemin ön koşuludur; SSL sertifikaları ve genel kontrol için SSL denetleyici sayfalarına bakabilirsiniz.

Bu makale faydalı oldu mu?

Makale Ara

Güvenlik & En İyi Uygulamalar

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç