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 rehberde, 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 https URL'sinde bulabilirse otomatik olarak yükseltir ve ardından bir mesaj gösterir.

Karışık 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 listesini, bulundukları sayfayla birlikte oluşturmak, bunları düzeltirken işinize yarayacaktır.

Sitenizdeki karma içeriği bulma

Karışık içeriği 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, daha sonra ele alınacak bazı önemli istisnalar dışında genellikle karma 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 eklenmiş olabilir. Örneğin, resimler göreli yol yerine tam URL ile eklenebilir. Bu hataları İYS 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 işleme

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örevde yardımcı olması için, tarayıcıya karma içerik hakkında sizi bilgilendirmesini söylemek ve sayfalarınızın hiçbir zaman beklenmedik şekilde güvenli olmayan kaynaklar yüklememesini sağlamak için içerik güvenliği politikasını kullanabilirsiniz.

İç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çerikleri izlemek ve karma içerikleri 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> etiketiyle Content-Security-Policy (Content-Security-Policy-Report-Only olmamasına rağmen) ayarlayabilirsiniz.

İçerik Güvenliği Politikası ile 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 Content-Security-Policy-Report-Only yönergesini sitenizin 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ı 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ın, CSP başlığını anlayan bir tarayıcıda sayfanızı ziyaret etmesi gerekir. 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üvenliği 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 bir web sitesi tarayıcısı kullanmak uygun bir alternatif olabilir. Örneğin, HTTPSChecker veya Mixed Content Scan'i kullanabilirsiniz.

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 İGP yönergesi, tarayıcıya ağ istekleri yapmadan önce güvenli olmayan URL'leri yükseltme talimatı verir.

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

Bunun yerine tarayıcı, https://example.com/image.jpg için güvenli bir istekte bulunur ve böylece kullanıcıyı karma içerikten kurtarır.

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 yükseltmediği istekleri yükseltmeyi dener.

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