Karma içerik düzeltiliyor

Web sitenizde HTTPS'yi desteklemek, sitenizi ve kullanıcılarınızı saldırılardan korumak için önemli bir adımdır ancak karışık içerik bu korumayı işe yaramaz hale getirebilir. Karma içerik nedir? başlıklı makalede açıklandığı gibi, giderek daha fazla güvenli olmayan karma içerik tarayıcılar tarafından engellenecek.

Bu kılavuzda, mevcut karma içerik sorunlarını düzeltmeye ve yenilerinin oluşmasını önlemeye yönelik teknikler ve araçlar gösterilecektir.

Sitenizi ziyaret ederek karma içerik bulma

Google Chrome'da bir HTTPS sayfasını ziyaret ettiğinizde tarayıcı, JavaScript konsolundaki hatalar ve uyarılar olarak karma içerik konusunda sizi uyarır.

Karma içerik nedir? başlıklı makalede, birkaç örnek bulabilir ve sorunların Chrome Geliştirici Araçları'nda nasıl bildirildiğini görebilirsiniz.

Pasif karma içerik örneğinde aşağıdaki uyarılar verilir. Tarayıcı, içeriği bir https URL'sinde bulursa otomatik olarak yükseltir ve ardından bir mesaj gösterir.

Karma içerik algılanıp yükseltildiğinde gösterilen uyarıları içeren Chrome Geliştirici Araçları

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

Etkin karma içerik engellendiğinde gösterilen uyarıları gösteren Chrome Geliştirici Araçları

Sitenizdeki http:// URL'leri için bu tür uyarılar görürseniz bunları sitenizin kaynağında düzeltmeniz gerekir. Bu URL'lerin ve bulundukları sayfaların bir listesini oluşturmak, bunları düzeltirken faydalı olur.

Sitenizdeki karma içeriği bulma

Karma içerikleri doğrudan kaynak kodunuzda arayabilirsiniz. Kaynağınızda http:// ifadesini arayın ve HTTP URL özelliklerini içeren etiketleri bulun. Sabit bağlantı etiketlerinin (<a>) href özelliğinde http:// bulunmasının genellikle karma içerik sorunu olmadığını unutmayın. Bununla birlikte, daha sonra ele alınacak bazı önemli istisnalar vardır.

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

Karma içeriği düzeltme

Sitenizin kaynağında karışık içerik bulduktan sonra, bu sorunu düzeltmek için aşağıdaki adımları uygulayabilirsiniz.

Bir kaynak isteğinin HTTP'den HTTPS'ye otomatik olarak yükseltildiğine dair bir konsol mesajı alırsanız kodunuzdaki kaynağın http:// URL'sini güvenle https:// olarak değiştirebilirsiniz. Tarayıcı URL çubuğunda http:// simgesini https:// olarak değiştirip URL'yi bir tarayıcı sekmesinde açmayı deneyerek de bir kaynağın güvenli bir şekilde kullanılabilir olup olmadığını kontrol edebilirsiniz.

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

  • Mümkünse farklı bir ana makinedeki kaynağı ekleyin.
  • Yasal olarak izin veriliyorsa içeriği doğrudan sitenize indirip barındırın.
  • Kaynağı sitenizden tamamen hariç tutun.

Sorunu düzelttikten sonra, hatayı ilk olarak gördüğünüz 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, köprü (<a>) etiketi URL'leri, tarayıcının yeni bir sayfaya gitmesine neden oldukları için karma içerik hatalarına yol açmaz. Bu nedenle, genellikle düzeltilmeleri gerekmez. Ancak bazı resim galerisi komut dosyaları, <a> etiketinin işlevini geçersiz kılar ve href özelliği tarafından belirtilen HTTP kaynağını sayfadaki bir lightbox ekranına yükleyerek karma içerik sorununa neden olur.

Geniş ölçekte karma içerik yönetimi

Yukarıdaki manuel adımlar daha küçük web siteleri için uygundur ancak büyük web sitelerinde veya birçok ayrı geliştirme ekibinin bulunduğu sitelerde yüklenen tüm içerikleri takip etmek zor olabilir. Bu görevi kolaylaştırmak için içerik güvenlik politikasını kullanarak tarayıcıya karma içerik hakkında sizi bilgilendirmesini söyleyebilir ve sayfalarınızın hiçbir zaman beklenmedik şekilde güvenli olmayan kaynaklar yüklememesini sağlayabilirsiniz.

İçerik güvenliği politikası

İçerik Güvenliği Politikası (İGP), karma içeriği büyük ö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 yükselterek veya engelleyerek kullanıcıları korumak için yaptırım politikaları sağlamak amacıyla 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ündeki bir <meta> etiketi kullanarak Content-Security-Policy (Content-Security-Policy-Report-Only olmasa da) ayarlayabilirsiniz.

İçerik güvenliği politikasıyla karışık içerik bulma

Sitenizdeki karma içerik raporlarını toplamak için içerik güvenliği politikasını kullanabilirsiniz. Bu özelliği etkinleştirmek için sitenize yanıt başlığı olarak ekleyerek Content-Security-Policy-Report-Only yönergesini 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ı her ziyaret ettiğinde tarayıcısı, içerik güvenlik politikasını ihlal eden her şeyle ilgili JSON biçimli raporları https://example.com/reportingEndpoint adresine gönderir. Bu durumda, bir alt kaynak HTTP üzerinden her yüklendiğinde rapor gönderilir. Bu raporlarda, politika ihlalinin gerçekleştiği sayfa URL'si ve politikayı ihlal eden alt kaynak URL'si yer alır. Raporlama uç noktanızı bu raporları kaydedecek şekilde yapılandırırsanız her sayfayı kendiniz ziyaret etmeden sitenizdeki karışık içeriği izleyebilirsiniz.

Bu konuda dikkat edilecek iki nokta vardır:

  • Kullanıcılar, sayfanızı CSP başlığını anlayan bir tarayıcıda ziyaret etmelidir. Bu durum, çoğu modern tarayıcı için geçerlidir.
  • Yalnızca kullanıcılarınızın ziyaret ettiği sayfalarla ilgili raporlar alırsınız. Bu nedenle, çok fazla trafik almayan sayfalarınız varsa sitenizin tamamıyla ilgili raporları almanız biraz zaman alabilir.

İçerik güvenlik politikası kılavuzunda daha fazla bilgi ve örnek bir uç nokta yer almaktadır.

CSP ile raporlamaya alternatifler

Siteniz Blogger gibi bir platform tarafından barındırılıyorsa üstbilgileri değiştirme ve İGP ekleme erişiminiz olmayabilir. Bunun yerine, sitenizdeki sorunları sizin için bulmak üzere HTTPSChecker veya Mixed Content Scan gibi bir web sitesi tarayıcısı kullanmak uygun bir alternatif olabilir.

Güvenli olmayan istekleri yükseltme

Browser Support

  • Chrome: 44.
  • Edge: 17.
  • Firefox: 48.
  • Safari: 10.1.

Source

Tarayıcılar, güvenli olmayan istekleri yükseltmeye ve engellemeye başlıyor. Bu öğelerin otomatik olarak yükseltilmesini veya engellenmesini zorlamak için CSP yönergelerini kullanabilirsiniz.

upgrade-insecure-requests CSP yönergesi, tarayıcıya ağ istekleri yapmadan önce güvenli olmayan URL'leri yükseltme talimatı verir.

Örneğin, bir sayfada <img src="http://example.com/image.jpg"> gibi bir HTTP URL'si içeren bir resim etiketi varsa

Bunun yerine tarayıcı, https://example.com/image.jpg için güvenli bir istek gönderir. Böylece kullanıcı, karma içerikten kurtulur.

Bu davranışı etkinleştirmek için şu yönergeyle birlikte bir Content-Security-Policy başlığı gönderebilirsiniz:

Content-Security-Policy: upgrade-insecure-requests

Alternatif olarak, aynı yönergeyi <meta> öğesini kullanarak dokümanın <head> bölümüne satır içi olarak yerleştirebilirsiniz:

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

Tarayıcıda otomatik yükseltme işleminde olduğu gibi, kaynak HTTPS üzerinden kullanılamıyorsa yükseltilmiş istek başarısız olur ve kaynak yüklenmez. Bu sayede sayfanızın güvenliği korunur. upgrade-insecure-requests yönergesi, otomatik tarayıcı yükseltme işleminden daha ileri giderek tarayıcının şu anda yapmadığı istekleri yükseltmeyi dener.

upgrade-insecure-requests yönergesi, <iframe> belgelerine uygulanarak sayfanın tamamının korunmasını sağlar.