Subresource Integrity Nedir Siteye Nasıl Uygulanır?

Webmaster Konuları
Subresource Integrity

Subresource Integrity (SRI), web güvenliğini artırmak için kullanılan bir mekanizmadır. Özellikle, bir web sayfasında harici kaynaklardan (örneğin, JavaScript veya CSS dosyaları) yüklenen içeriklerin bütünlüğünü kontrol etmek için kullanılır.

SRI, bir dosyanın beklenen hash değerini içeren bir integrity özelliği ekleyerek çalışır. Tarayıcı, dosyayı indirdikten sonra bu hash ile karşılaştırır. Eğer hash değeri eşleşmiyorsa, tarayıcı dosyayı yüklemez ve kullanıcıyı olası bir zarardan korur. Bu, özellikle dış kaynakların kötü amaçlı olarak değiştirilmesi durumunda önemlidir.

Kısacası Subresource Integrity, web sayfalarındaki harici kaynakların güvenliğini artırmak için basit ama etkili bir yöntemdir. Web sitesi güvenliğini veya SEO analizlarini online yapan bazı web sitelerinde karşılaşılan uyarı mesajı genelde şuna benzer şekilde olur: Subresource Integrity (SRI) not implemented, but all external scripts are loaded over HTTPS.

Subresource Integrity siteye uygulanmazsa riskleri neler olabilir?

Subresource Integrity (SRI) kullanılmadığında ortaya çıkabilecek riskler şunlardır:

  1. Kötü Amaçlı Yazılımlar: Harici kaynaklar kötü niyetli kişiler tarafından değiştirilirse, web sayfanızda zararlı yazılımlar çalıştırılabilir. Bu, kullanıcıların cihazlarına virüs bulaşmasına veya verilerinin çalınmasına yol açabilir.
  2. Veri Bütünlüğü Sorunları: Yüklediğiniz dosyaların beklenmedik şekilde değişmesi, sayfanızın beklenen şekilde çalışmamasına neden olabilir. Bu, kullanıcı deneyimini olumsuz etkiler.
  3. SEO ve İtibar Kaybı: Güvenlik açıkları, arama motorları tarafından olumsuz şekilde değerlendirilir. Kullanıcıların güvenliğini tehlikeye atan bir site, itibar kaybı yaşayabilir.
  4. Phishing ve Kimlik Avı Saldırıları: Eğer harici bir kaynak üzerinde kontrolünüz yoksa, bu kaynak üzerinden kullanıcıları sahte sayfalara yönlendiren saldırılar gerçekleştirilebilir.
  5. Yasal ve Finansal Sonuçlar: Kullanıcı verilerinin sızması, yasalarla korunan bilgiler üzerinde olumsuz sonuçlar doğurabilir ve şirketlerin yasal sorumluluklarını artırabilir.

Subresource Integrity kullanımı bu tür riskleri minimize etmek için önemli bir güvenlik katmanı sağlar.

Subresource Integrity Nasıl Kullanılır?

Subresource Integrity (SRI) web sitenize uygulamak için aşağıdaki adımları izleyebilirsiniz:

1. Dosyanızın Hash Değerini Oluşturun

Öncelikle, harici bir kaynak (örneğin, bir JavaScript veya CSS dosyası) yüklemeden önce, o dosyanın hash değerini oluşturmanız gerekir. Bunu yapmak için çeşitli araçlar veya çevrimiçi hash hesaplayıcılar kullanabilirsiniz. Örneğin, şu komut satırı araçları kullanılabilir:
OpenSSL: openssl dgst -sha384 -binary your-file.js | openssl base64 -A

2. Hash Değerini HTML’ye Ekleyin

Oluşturduğunuz hash değerini, <script> veya <link> etiketlerinizin integrity özelliğine ekleyin. Ayrıca crossorigin özelliğini de belirlemeniz gerekebilir. Örnekler:

JavaScript İçin:
<script src="https://example.com/script.js"
integrity="sha384-BASE64_HASH_DEGERI"
crossorigin="anonymous"></script>

CSS İçin:
<link rel="stylesheet" href="https://example.com/style.css"
integrity="sha384-BASE64_HASH_DEGERI"
crossorigin="anonymous">

3. Tarayıcı Desteğini Kontrol Edin

SRI, modern tarayıcılarda desteklenmektedir. Ancak, eski tarayıcıları hedefliyorsanız uyumluluk durumunu kontrol etmek faydalı olabilir.

4. Test Edin

Uyguladıktan sonra, dosyayı değiştirmeyi deneyin ve tarayıcının dosyayı yükleyip yüklemediğini kontrol edin. Eğer hash değeri ile uyumsuzluk varsa, dosya yüklenmeyecek ve hata alacaksınız.

5. Güvenli Kaynaklar Kullanın

Subresource Integrity uygularken harici kaynakların güvenilir olduğundan emin olun. Bu, güvenlik açığı riskini en aza indirecektir.