Web sitenizde HTTPS'nin desteklenmesi, sitenizi ve kullanıcılarınızı saldırılara karşı korumak için önemli bir adımdır. ancak karma içerik bu korumayı işe yaramaz hale getirebilir. Güvenliği olmayan karma içerik, Karma içerik nedir? konusunda açıklandığı gibi tarayıcılar tarafından engellenir.
Bu kılavuzda, mevcut karma içerik sorunlarını düzeltmeye yönelik teknikleri ve araçları göstereceğiz. ve yenilerinin oluşmasını önlemektir.
Sitenizi ziyaret ederek karma içerik bulma
Google Chrome'da bir HTTPS sayfasını ziyaret ederken tarayıcı, JavaScript konsolunda karma içerik varsa hata ve uyarı olarak sizi uyarır.
Karma içerik nedir? bölümünde, Chrome Geliştirici Araçları'nda çok sayıda örnek bulabilir ve sorunların nasıl bildirildiğini görebilirsiniz.
Pasif karma içerik örneğinde aşağıdaki uyarılar verilir.
Tarayıcı, https
URL'sindeki içeriği bulursa içeriği otomatik olarak yükseltir ve bir mesaj gösterir.
![Karma içerik algılanıp yeni sürüme geçirildiğinde gösterilen uyarıları gösteren Chrome Geliştirici Araçları](https://web.dev/static/articles/fixing-mixed-content/image/passive-mixed-content.jpeg?authuser=6&hl=tr)
Etkin karma içerik engellenir ve bir uyarı gösterilir.
![Etkin karma içerik engellendiğinde gösterilen uyarıları gösteren Chrome Geliştirici Araçları](https://web.dev/static/articles/fixing-mixed-content/image/chrome-devtools-showing-7a65755cae4b8.jpg?authuser=6&hl=tr)
Sitenizde http://
URL için bu tür uyarılar görürseniz
bunları sitenizin kaynağında düzeltmeniz gerekir.
Bu URL'leri düzelttiğinizde kullanabilmeniz için, URL'leri bulduğunuz sayfayla birlikte bu URL'lerin bir listesini yapmanız faydalı olacaktır.
Sitenizde karma içerik bulma
Karma içeriği doğrudan kaynak kodunuzda arayabilirsiniz.
Kaynağınızda http://
araması yapın ve HTTP URL'si özelliklerini içeren etiketleri arayın.
Bağlantı etiketlerinin href
özelliğinde (<a>
) http://
bulunması gerektiğine dikkat edin
genellikle karma bir içerik sorunu değildir; ancak önemli istisnalar daha sonra ele alınacaktır.
Siteniz bir içerik yönetim sistemi kullanılarak yayınlanıyorsa sayfalar yayınlandığında güvenli olmayan URL'lerin bağlantıları eklenebilir. Örneğin, görseller göreli bir yol yerine tam URL ile eklenebilir. Bunları CMS içeriğinde bulup düzeltmeniz gerekir.
Karma içeriği düzeltme
Sitenizin kaynağında karma içerik bulduğunuzda bu adımları uygulayarak sorunu çözebilirsiniz.
Bir kaynak isteğinin otomatik olarak HTTP'den HTTPS'ye yükseltildiğini belirten bir konsol mesajı alırsanız
kodunuzda kaynağın http://
URL'sini https://
olarak güvenli bir şekilde değiştirebilirsiniz.
Ayrıca, tarayıcının URL çubuğundaki http://
değerini https://
olarak değiştirerek bir kaynağın güvenli bir şekilde kullanılıp kullanılamadığını kontrol edebilirsiniz.
ve URL'yi bir tarayıcı sekmesinde açmaya çalıştığınızı varsayalım.
Kaynak https://
üzerinden kullanılamıyorsa aşağıdaki seçeneklerden birini tercih etmeniz önerilir:
- Farklı bir ana makineden (varsa) kaynağı ekleyin.
- Yasal olarak izniniz varsa içeriği doğrudan sitenizde indirin ve barındırın.
- Kaynağı sitenizden tamamen hariç tutun.
Sorunu çözdükten sonra, hatayı ilk 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 karma içerik hatalarına neden olmaz,
Bunlar tarayıcının yeni bir sayfaya gitmesine neden olur.
Bu sayede genellikle düzeltilmesi gerekmez.
Ancak bazı resim galerisi komut dosyaları, <a>
işlevinin işlevlerini geçersiz kılar.
etiketi yerleştirmeli ve href
özelliği tarafından belirtilen HTTP kaynağını sayfada bir ışık kutusu görüntüsüne yüklemeli,
karma içerik sorununa neden oluyor.
Karma içeriği geniş ölçekte yönetme
Yukarıdaki manuel adımlar daha küçük web sitelerinde işe yarar; Ancak büyük web siteleri veya birçok ayrı geliştirme ekibi olan siteler için 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ı kullanabilirsiniz kullanın.
İçerik güvenliği politikası
İçerik güvenliği politikası (İGP) karma içeriği geniş ölçekte yönetmek için kullanabileceğiniz çok amaçlı bir tarayıcı özelliğidir. İGP bildirme mekanizması, sitenizdeki karma içeriği izlemek için kullanılabilir. ve karma içeriği yeni sürüme geçirerek veya engelleyerek kullanıcıları korumak için yaptırım politikaları sağlayın.
Bir sayfa için bu özellikleri
Sunucunuzdan gönderilen yanıtta Content-Security-Policy
veya Content-Security-Policy-Report-Only
üstbilgisi var.
Ayrıca, Content-Security-Policy
(Content-Security-Policy-Report-Only
değil) ekleyebilirsiniz.<meta>
<head>
İçerik güvenliği politikasıyla karma 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, sitenize yanıt başlığı olarak ekleyerek ayarlayın.
Yanıt üstbilgisi:
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
İçerik güvenliği politikasını ihlal eden her şeyle ilgili olarak JSON biçiminde raporlar gönderir.
https://example.com/reportingEndpoint
Bu durumda, bir alt kaynak HTTP üzerinden her yüklendiğinde bir rapor gönderilir.
Bu raporlar, politika ihlalinin gerçekleştiği sayfanın URL'sini ve politikayı ihlal eden alt kaynağın 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 sayfayı kendiniz ziyaret etmeden izleyebilirsiniz.
Bu konuda dikkat edilmesi gereken iki uyarı şunlardır:
- Kullanıcıların, sayfanızı CSP 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 sayfalarla ilgili raporlar alırsınız. Bu nedenle, fazla trafik almayan sayfalarınız için sitenizin tamamına ilişkin raporları almanız biraz zaman alabilir.
İçerik güvenliği politikası rehberinde daha fazla bilgi ve örnek bir uç nokta bulunuyor.
CSP ile raporlamaya alternatifler
Siteniz Blogger gibi bir platform tarafından barındırılıyorsa başlıkları değiştirme ve CSP ekleme erişiminiz olmayabilir. Bunun yerine, sitenizdeki sorunları tespit etmek için bir web sitesi tarayıcısı kullanmak HTTPSChecker veya Karma İçerik Taraması.
Güvenli olmayan istekleri yeni sürüme geçirme
Tarayıcılar yükseltmeye ve güvenli olmayan istekleri engellemeye başladı. Bu öğelerin otomatik olarak yeni sürüme geçirilmesini veya engellenmesini zorunlu kılmak için İGP yönergelerini kullanabilirsiniz.
upgrade-insecure-requests
CSP yönergesi, tarayıcıya ağ isteklerinde bulunmadan önce güvenli olmayan URL'leri yeni sürüme geçirmesi talimatını verir.
Örneğin, bir sayfa
<img src="http://example.com/image.jpg">
.
Tarayıcı, bunun yerine
https://example.com/image.jpg
Böylece kullanıcı karma içerikten kurtarılır.
Bu davranışı, şu yönergeyle bir Content-Security-Policy
üst bilgisi göndererek etkinleştirebilirsiniz:
Content-Security-Policy: upgrade-insecure-requests
Alternatif olarak, aynı yönergeyi dokümanın <head>
öğesine satır içi olarak da yerleştirebilirsiniz.
bölümü için <meta>
öğesi kullanın:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
Tarayıcının 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ıdaki otomatik yükseltme işleminden daha fazlasını sunar.
isteklerin yeni sürüme geçirilmesiyle ilgili daha fazla bilgi edinin.
upgrade-insecure-requests
yönergesi, <iframe>
dokümanlara kademeli olarak aktarılır.
ve tüm sayfanın korunmasını sağlar.