Skip to content

Glossary

SRI

Alt Kaynak Bütünlüğü

By Published Updated

SRI (Subresource Integrity / Alt Kaynak Bütünlüğü), harici bir kaynağın SHA-256/SHA-384/SHA-512 özetini sabitlemenize olanak tanıyan bir HTML5 özelliğidir. Tarayıcı, indirme sırasında özeti hesaplar ve özetler eşleşmezse kaynağı yürütmeyi reddeder.

Örnek: <script src="https://cdn.example/lib.js" integrity="sha384-AbC..." crossorigin="anonymous"></script>

Bu neyin karşısında koruma sağlar: CDN güvenliği ihlali. Bir saldırgan CDN'yi ele geçirip değiştirilmiş JavaScript sunarsa, SRI aracılığıyla komut dosyasını dahil eden her site değiştirilmiş sürümü çalıştırmayı reddeder. SRI olmadan her site sessizce kötü amaçlı yük alır.

Değiş tokuş: bir özet sabitleme, kaynağı referans alan her sayfayı güncellemeden kaynağı güncelleyemezsiniz demektir. Zaten derlediğiniz birinci taraf varlıklar için SRI düşük maliyetli bir savunmadır. Üçüncü taraf CDN komut dosyaları (jQuery, analitik etiketleri) için güncelleme yayılımının yavaşlaması pahasına anlamlı bir güvenlik kazanımıdır.

SRI, etikette crossorigin="anonymous" ve CDN yanıtında CORS başlığı gerektirir — tarayıcının yanıtı opak biçimde okuyabilmesi gerekir.

SRI'nın durdurabildiği gerçek dünya olayları: Magecart kart sıyırma saldırı ailesi, güvenilir satıcılar tarafından barındırılan üçüncü taraf JavaScript'i (BrowserAloud, Inbenta, Picreel) defalarca ele geçirdi ve binlerce e-ticaret ödeme sayfasına yüklenen kart çalan kod enjekte etti. Ticketmaster'ın 2018 ihlali ve British Airways'in 2018 ihlali, etkilenen sitelerin <script src="…"> aracılığıyla dahil ettiği konaklarda komut dosyalarını değiştiren saldırganları kapsıyordu. SRI, spesifik azaltma yöntemidir: söz konusu siteler yüklemek istedikleri komut dosyası sürümünün integrity özetini sabitlemiş olsaydı, değiştirilmiş yük kontrolü başarısız olurdu ve tarayıcı yürütmeyi reddederdi.

SRI özetlerini pragmatik biçimde oluşturma ve döndürme: sahip olduğunuz dosyalar için derleme boru hattı varlık paketinin yanı sıra SRI özetleri yayımlamalı ve şablon oluşturma zamanında bunları HTML'ye satır içi eklemelidir (Next.js, Vite ve Webpack'in tümü bunu eklentilerle destekler). Üçüncü taraf kütüphaneler için önerilen iş akışı, belirli bir sürümü kilitlemek, dosyayı kendi CDN'inize kopyalamak ve bunu SRI ile sabitlemektir — aynı URL'de aynı baytları kullanılabilir tutması için yukarı akış CDN'ye güvenmek aylar içinde risklidir. integrity özelliği, algoritma geçişlerine izin vermek için boşluklarla ayrılmış birden fazla özeti kabul eder (SHA-384 ve SHA-512'yi birlikte gönderin; tarayıcı desteklediğini seçer). İlgili: CSP, SHA-256. Kaynak: W3C — Alt Kaynak Bütünlüğü.

Çözümlü örnek

SRI korumasıyla CDN'den jQuery 3.7.1 dahil etmek istiyorsunuz. Dosyanın SHA-384 özetini hesaplayın: openssl dgst -sha384 -binary jquery-3.7.1.min.js | openssl base64 -A, Bu3qSpvxnAdMaOTsigCcfqUyJYvP7AbsxRRpzqj7M1V2OuoP1bb98c8MQYIPHzxc gibi bir değer verir. Gömin: <script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha384-Bu3qSpvxnAdMaOTsigCcfqUyJYvP7AbsxRRpzqj7M1V2OuoP1bb98c8MQYIPHzxc" crossorigin="anonymous"></script>. Sayfa yüklemesinde tarayıcı dosyayı getirir, SHA-384'ü hesaplar, base64 kodlar ve integrity özelliğiyle karşılaştırır. CDN değiştirilmiş bir dosya sunarsa — tek bayt değişikliği bile — özetler ayrışır, tarayıcı yürütmeyi engeller ve DevTools'da bir SecurityError görünür. Sayfa yine oluşturulur; yalnızca bütünlük başarısız olan komut dosyası bastırılır.

Ne zaman ve neden önem taşır

Siteniz, kontrolünüzde olmayan bir alandan JavaScript yüklediğinde, o alanın operatörlerine, onların CDN sağlayıcısına, DNS'lerine ve TLS'nin her adımına güveniyorsunuzdur. Bu güven, önem taşıyacak kadar sık ampirik olarak yanlış çıkmaktadır: npm paketlerini, jQuery eklentilerini, GTM kapsayıcılarını ve analitik komut dosyalarını etkileyen tedarik zinciri güvenlik ihlalleri yılda birkaç kez büyük sitelere zarar vermiştir. SRI, üçüncü tarafın güvenilmesini gerektirmeyen savunmadır. Pragmatik dağıtım stratejisi: URL ile yüklediğiniz üçüncü taraf komut dosyalarını (CDN barındırmalı kütüphaneler, gömülü widget'lar) SRI ile sabitleyin; ancak baytları kontrol ettiğiniz kendi kaynağınızdan gönderdiğiniz paketlenmiş komut dosyalarını değil. Savunma derinliği için CSP require-sri-for script (önerilmiş ancak henüz yaygın olarak uygulanmamış) veya açık izin verilen özetlerle script-src ile birleştirin. Kaynak: MDN — Alt Kaynak Bütünlüğü.

Frequently asked questions

SRI (Alt Kaynak Bütünlüğü) nedir?
SRI (Subresource Integrity / Alt Kaynak Bütünlüğü), HTML integrity özelliğinde harici bir komut dosyası ya da stil sayfasının beklenen kriptografik özetini sabitlemenize olanak tanıyan bir tarayıcı güvenlik özelliğidir. Getirilen baytlar farklı bir özet üretirse tarayıcı yürütmeyi engeller.
SRI pratikte nasıl kullanılır?
jQuery gibi CDN'de barındırılan bir kütüphane, beklenen özeti içeren bir integrity özelliğiyle dahil edilir. CDN güvenliği ihlal edilip değiştirilmiş dosya sunulursa özet eşleşmez ve tarayıcı yürütmeyi reddederek kullanıcıları tedarik zinciri saldırılarından korur.
SRI ile CSP arasındaki fark nedir?
İçerik Güvenliği Politikası (CSP), hangi kaynaklardan komut dosyası ve stil temin edilebileceğini kısıtlar. SRI, kaynaktan bağımsız olarak belirli bir kaynağın tam içeriğini doğrular. Bunlar tamamlayıcıdır: CSP yetkisiz kaynaklardan yüklemeyi, SRI ise yetkili kaynaklardan değiştirilmiş içerik yüklemeyi engeller.

Related

Published May 15, 2026 · Last reviewed May 31, 2026