Karma içerik düzeltiliyor

Joel van Bergen
Jo-el van Bergen

Web siteniz için HTTPS'yi desteklemek, sitenizi ve kullanıcılarınızı saldırılardan korumak için önemli bir adımdır ancak karma içerik bu korumayı işe yaramaz hale getirebilir. Karma içerik nedir? konusunda açıklandığı gibi, giderek artan güvensiz karma içerik tarayıcılar tarafından engellenir.

Bu kılavuzda, karma içerikle ilgili mevcut sorunları düzeltmeye ve yeni sorunların ortaya çıkmasını önlemeye yönelik teknikleri ve araçları göstereceğiz.

Sitenizi ziyaret ederek karma içerik bulma

Google Chrome'da bir HTTPS sayfasını ziyaret ettiğinizde, tarayıcı JavaScript konsolunda karışık içerik hata ve uyarı olarak sizi uyarır.

Karma içerik nedir? bölümünde, çeşitli örnekler bulabilir ve Chrome Geliştirici Araçları'nda sorunların nasıl bildirildiğini görebilirsiniz.

Pasif karma içerik örneği, aşağıdaki uyarıları verir. Tarayıcı, https URL'sindeki içeriği bulabilirse içeriği otomatik olarak yeni sürüme geçirir ve bir mesaj gösterir.

Karma içerik algılandığında ve yeni sürüme geçirildiğinde gösterilen uyarıları gösteren Chrome Geliştirici Araçları

Etkin karma içerik engellenir ve bir uyarı gösterilir.

Etkin karma içerik engellendiğinde görüntülenen uyarıları gösteren Chrome Geliştirici Araçları

Sitenizde http:// URL'ler için bu tür uyarılar bulursanız sitenizin kaynağında bunları düzeltmeniz gerekir. URL'leri düzeltirken kullanmak için bu URL'leri bulduğunuz sayfayla birlikte bir listesini yapmanız yararlı olur.

Sitenizde karma içerik bulma

Karma içeriği doğrudan kaynak kodunuzda arayabilirsiniz. Kaynağınızda http:// araması yapın ve HTTP URL özellikleri içeren etiketleri arayın. Bağlantı etiketlerinin (<a>) href özelliğinde http:// bulunmasının, daha sonra ele alınacak bazı önemli istisnalarla birlikte genellikle karma bir içerik sorunu olmadığını unutmayın.

Siteniz bir içerik yönetim sistemi kullanılarak yayınlanıyorsa, sayfalar yayınlandığında güvenli olmayan URL'lere bağlantılar eklenebilir. Örneğin, resimler göreli yol yerine tam URL ile eklenebilir. Bunları İçerik Yönetim Sistemi içeriğinde bulup düzeltmeniz gerekir.

Karma içeriği düzeltme

Sitenizin kaynağında karışık içerik bulduğunuzda sorunu düzeltmek için aşağıdaki adımları uygulayabilirsiniz.

Bir kaynak isteğinin otomatik olarak HTTP'den HTTPS'ye yükseltildiğini belirten bir konsol mesajı alırsanız kodunuzdaki kaynağın http:// URL'sini güvenli bir şekilde https:// olarak değiştirebilirsiniz. Ayrıca, bir kaynağın kullanılabilir durumda olup olmadığını, tarayıcı URL çubuğundaki http:// değerini https:// olarak değiştirip URL'yi bir tarayıcı sekmesinde açmayı deneyerek de kontrol edebilirsiniz.

Kaynak https:// üzerinden kullanılamıyorsa aşağıdaki seçeneklerden birini değerlendirmenizi öneririz:

  • Farklı bir ana makinedeki kaynağı (varsa) dahil edin.
  • Yasal olarak izniniz varsa içeriği doğrudan sitenizde indirip barındırın.
  • Kaynağı sitenizden tamamen hariç tutun.

Sorunu giderdikten sonra hatayı ilk olarak bulduğunuz sayfayı görüntüleyin ve hatanın artık görünmediğini doğrulayın.

Standart dışı etiket kullanımına dikkat edin

Sitenizde standart dışı etiket kullanımına dikkat edin. Örneğin, bağlantı (<a>) etiketi URL'leri tarayıcının yeni bir sayfaya gitmesine neden olduğundan karma içerik hatalarına yol açmaz. Bu, genellikle düzeltilmelerine gerek olmadığı anlamına gelir. Bununla birlikte, bazı resim galerisi komut dosyaları <a> etiketinin işlevselliğini geçersiz kılar ve href özelliğiyle belirtilen HTTP kaynağını sayfada bir ışık kutusu ekranına yükler ve bu durum, karma içerik sorununa yol açar.

Karma içeriği geniş ölçekte yönetme

Yukarıdaki manuel adımlar, daha küçük web sitelerinde iyi sonuç verir ancak büyük web sitelerinde veya birçok ayrı geliştirme ekibine sahip sitelerde, yüklenen tüm içeriği takip etmek zor olabilir. Bu görevde yardımcı olması için, içerik güvenliği politikasını kullanarak tarayıcıya karma içerik hakkında bildirim vermesini söyleyebilir ve sayfalarınızın güvenli olmayan kaynakları hiçbir zaman beklenmedik şekilde yüklememesini sağlayabilirsiniz.

İçerik güvenliği politikası

İçerik güvenliği politikası (CSP), karma içeriği geniş ölçekte yönetmek için kullanabileceğiniz çok amaçlı bir tarayıcı özelliğidir. CSP raporlama mekanizması, sitenizdeki karma içeriği izlemek ve karma içeriği yeni sürüme geçirerek veya engelleyerek kullanıcıları korumak için yaptırım politikaları sağlamak üzere kullanılabilir.

Sunucunuzdan gönderilen yanıta Content-Security-Policy veya Content-Security-Policy-Report-Only üstbilgisini ekleyerek bir sayfa için bu özellikleri etkinleştirebilirsiniz. Ayrıca, sayfanızın <head> bölümünde bir <meta> etiketi kullanarak Content-Security-Policy (ancak Content-Security-Policy-Report-Only değil) ayarlayabilirsiniz.

İçerik güvenliği politikasına sahip karma içerikleri bulma

Sitenizde karma içerikle ilgili raporlar toplamak için içerik güvenliği politikasını kullanabilirsiniz. Bu özelliği etkinleştirmek için Content-Security-Policy-Report-Only yönergesini, sitenize yönelik bir yanıt başlığı olarak ekleyerek ayarlayın.

Yanıt başlığı:

Content-Security-Policy-Report-Only: default-src https: 'unsafe-inline' 'unsafe-eval'; report-uri https://example.com/reportingEndpoint

Bir kullanıcı sitenizdeki bir sayfayı ziyaret ettiğinde, tarayıcısı https://example.com/reportingEndpoint adresine içerik güvenliği politikasını ihlal eden her şeyle ilgili JSON biçiminde raporlar gönderir. Bu durumda, HTTP üzerinden bir alt kaynak her yüklendiğinde bir rapor gönderilir. Bu raporlar, politika ihlalinin gerçekleştiği sayfanın URL'si ve politikayı ihlal eden alt kaynak URL'sini içerir. Raporlama uç noktanızı bu raporları günlüğe kaydedecek şekilde yapılandırırsanız sitenizdeki karma içeriği her bir sayfayı kendiniz ziyaret etmeden izleyebilirsiniz.

Bu konuda dikkat edilmesi gereken iki nokta:

  • Kullanıcıların sayfanızı İGP başlığını anlayan bir tarayıcıda ziyaret etmesi gerekir. Bu, modern tarayıcıların çoğu için geçerlidir.
  • Yalnızca kullanıcılarınızın ziyaret ettiği sayfalar için rapor alırsınız. Dolayısıyla, fazla trafik almayan sayfalarınız varsa sitenizin tamamı için rapor almanız biraz zaman alabilir.

İçerik güvenliği politikası kılavuzunda daha fazla bilgi ve örnek bir uç nokta bulunmaktadır.

CSP ile raporlamaya alternatifler

Siteniz Blogger gibi bir platform tarafından barındırılıyorsa başlıkları değiştirmek ve CSP eklemek için erişiminiz olmayabilir. Bunun yerine, sitenizdeki sorunları sizin yerinize bulmak üzere HTTPSChecker veya Karma İçerik Tarama gibi bir web sitesi tarayıcısı kullanmak uygun bir alternatif olabilir.

Güvenli olmayan istekleri yeni sürüme geçirme

Tarayıcı Desteği

  • 44
  • 17
  • 48
  • 10.1

Kaynak

Tarayıcılar yeni sürüme geçmeye ve güvenli olmayan istekleri engellemeye başlıyor. Bu öğelerin otomatik olarak yeni sürüme geçirilmesini veya engellenmesini zorunlu kılmak için CSP yönergelerini kullanabilirsiniz.

upgrade-insecure-requests CSP yönergesi, tarayıcıya ağ isteğinde bulunmadan önce güvenli olmayan URL'leri yeni sürüme geçirme talimatı verir.

Örneğin, bir sayfa <img src="http://example.com/image.jpg"> gibi bir HTTP URL'sine sahip bir resim etiketi içeriyorsa

Tarayıcı bunun yerine https://example.com/image.jpg için güvenli bir istekte bulunur ve böylece kullanıcıyı karma içerikten kaydeder.

Bu davranışı şu yönergeye sahip bir Content-Security-Policy üstbilgisi göndererek etkinleştirebilirsiniz:

Content-Security-Policy: upgrade-insecure-requests

Veya aynı yönergeyi bir <meta> öğesi kullanarak dokümanın <head> bölümünde satır içine yerleştirebilirsiniz:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

Tarayıcı otomatik yükseltmesinde olduğu gibi, kaynak HTTPS üzerinden kullanılamıyorsa yükseltilen istek başarısız olur ve kaynak yüklenmez. Bu, sayfanızın güvenliğini sağlar. upgrade-insecure-requests yönergesi, tarayıcının şu anda yapmadığı yeni sürüme geçirme isteklerini otomatik olarak güncellemeden ibarettir.

upgrade-insecure-requests yönergesi, <iframe> dokümanlarına basamaklanarak tüm sayfanın korunmasını sağlar.