Subresource Bütünlüğü (SRI) | Hahwul


Gelişmiş Web Güvenliği için Sub Resource Bütünlüğünü (SRI) anlama ve uygulama kılavuzu.

Subresource Inteprity (SRI), tarayıcıların getirdikleri kaynakların (örneğin bir CDN’den) beklenmedik manipülasyon olmadan teslim edildiğini doğrulamalarını sağlayan bir güvenlik özelliğidir. Alınan bir kaynağın eşleşmesi gereken bir kriptografik karma sağlamanıza izin vererek çalışır.

Bu makale Sri’nin ne olduğunu, neden ihtiyaç duyulduğunu, nasıl çalıştığını ve nasıl uygulanacağını açıklamaktadır.

SRI nedir?

SRI, web geliştiricilerinin üçüncü taraf sunucularda (CDN’ler gibi) barındırılan kaynakların kurcalanmadığından emin olmasını sağlayan bir W3C spesifikasyonudur. Bir kaynak için bir kriptografik karma (bütünlük meta verileri) sağlayarak, tarayıcı, getirilen kaynağın yürütülmeden önce beklenen karma ile eşleştiğini doğrulayabilir. Kaynak eşleşmezse, tarayıcı onu yüklemeyi reddederek potansiyel saldırıları önleyecektir.

 graph LR
    subgraph Server
        A[Generate resource hash and
embed in HTML 'integrity' attribute] end subgraph Browser B[Download resource from CDN] --> C[Calculate hash from
the downloaded resource] C --> D{Compare hashes} end A --> B D -- Match --> E[✅ Execute script] D -- Mismatch --> F[❌ Block script & throw error]

Sri’nin neden gerekli?

Web siteleri genellikle JavaScript kitaplıkları ve CSS çerçeveleri gibi ortak dosyaları sunmak için içerik dağıtım ağlarına (CDN’ler) güvenir. Bu performansı ve kullanılabilirliği artırır. Ancak, bir CDN tehlikeye atılırsa, kötü niyetli aktörler bu dosyaları kullanan web sitelerine kötü amaçlı kod enjekte etmek için değiştirebilir. Bu, veri hırsızlığı veya tam bir site devralma gibi çeşitli saldırılara yol açabilir.

SRI, tarayıcının yalnızca geliştirici tarafından sağlanan bütünlük karma ile eşleşen kodu yürütmesini sağlayarak bu riski azaltır.

SRI nasıl çalışır?

SRI kullanarak integrity AÇIK