Karışık içerik, güvenli bağlantıyla yüklenen bir sayfanın güvensiz bağlantı üzerinden istenen kaynakları kullanmasıdır. Screpy'nin Mixed Content Kontrolü, herkese açık tek bir HTTPS sayfanın kaynak HTML'indeki HTTP kaynak referanslarını bulur; kategorilerini, adreslerini, ilk kaynak satırını ve tekrar sayılarını gösterir. Bu bilgilerle değiştirilmesi gereken içerik veya şablonu bulup güvenli bir alternatif hazırlayabilirsiniz.
Rapor sayfayı çalıştırmaz ve listelenen kaynakları istemez. Ziyaretçinin tarayıcısının gerçekten ne yüklediğinin, HTTPS'e yükselttiğinin veya engellediğinin kaydı değil, incelenecek kaynak referanslarının listesidir. Başarılı bir kontrol, sitenin tamamının güvenli olduğunu da onaylamaz.
Referansları içeren HTTPS sayfayı kontrol edin
İnceleyeceğiniz sayfanın herkese açık tam adresini girin. Bir makale için ana sayfayı veya güvensiz olduğunu düşündüğünüz görseli değil, örnek https://example.com/guides/setup/ adresindeki gibi makalenin kendi URL'sini gönderin. Araç yalnızca verdiğiniz sayfayı inceler; alan adındaki bütün sayfaları keşfetmez.
Giriş HTTPS gerektirir. Yönlendirmeler incelenen sayfayı değiştirebileceği için kontrol sonrasında son URL'yi okuyun. HTTPS adres HTTP'de sonlanırsa rapor, HTTPS karışık içerik analizine uygulanamaz. Bu temiz sonuç değildir. Beklenmeyen hedefi incelemek için Redirect Checker kullanın.
Sayfanın okunabilir, herkese açık HTML döndürmesi gerekir. Giriş ekranındaki referanslar, arkasındaki özel sayfadan farklı olabilir. Kullanılamayan yanıt, desteklenmeyen belge veya başarısız istek, kontrolün tamamlanamadığı anlamına gelir; güvensiz referans bulunmadığını kanıtlamaz.
Engellenebilir kaynakları, yükseltme adaylarını ve form hedeflerini okuyun
Tabloyu daraltmak için kategori filtresini kullanın, ardından her adresin yanındaki öğeyi ve özniteliği inceleyin. Kategoriler, denetleyicinin desteklenen HTTP referanslarını nasıl grupladığını anlatır; gözlemlenmiş tarayıcı sonuçları değildir.
| Kategori | Bu rapordaki örnekler | İncelenecek konu |
|---|---|---|
| Engellenebilir, kırmızı | Scriptler, stil dosyaları, çerçeveler, duyarlı görsellerin srcset adayları |
Kaynağı bulun ve uygun bir HTTPS alternatifini doğrulayın. |
| Yükseltme adayı, sarı | Desteklenen görsel, ses ve video kaynak referansları | İstenen kaynağın HTTPS üzerinden gerçekten çalıştığını kontrol edin; otomatik yükseltme erişilebilirlik kanıtı değildir. |
| Güvensiz form hedefi, turuncu | Formun action veya düğme/input öğesinin formaction değeri |
Formu değiştirmeden önce amaçlanan güvenli gönderim hedefini doğrulayın. |
Denetleyici ayrıca object öğeleri, görsel input öğeleri, video posterleri ve belirli link ilişkileri gibi desteklenen kaynak referanslarını inceler. Sunucu adı IP adresi olan görsel veya medya URL'leri, yükseltme adayı yerine engellenebilir kategorisine konur.
Güncel karışık içerik rehberi, yükseltilebilir ve engellenebilir istekleri ayırır. Gerçek davranış, tarayıcı kurallarına ve güvenlik politikalarına da bağlıdır. Kaynağa dayanan bu sınıflandırma, güvenilir sayılabilecek yerel adresler dahil her istisnayı değerlendirmez. Her kırmızı satırı, belirli bir tarayıcının isteği engellediğinin kanıtı saymayın.
Form hedefleri ayrı bir inceleme kategorisidir. Karışık içerik standardının form gönderimi bölümü, tarayıcı uyarılarını sıradan kaynak kontrollerinden ayrı ele alır. Screpy bu formları göndermez ve hangi bilgileri topladıklarını belirlemez. Gerçek formun amacını incelerken doğrulanmamış bir hedefe hassas deneme verileri göndermeyin.
Gruplanan bulgulardan kaynak koda ulaşın
Tablo; öğesi, özniteliği, sınıflandırması ve çözümlenen URL'si aynı olan tekrarları birleştirir. Dolayısıyla aynı adres farklı öğe veya öznitelikte başka bir satır oluşturabilir. Gösterilen satır, alınan HTML'de grubun ilk görüldüğü yerdir; şablon düzenleyicinizdeki satırla aynı olmak zorunda değildir.
Bu kurgusal parçada dört HTTP referansı bulunur:
<script src="http://static.example.com/site.js"></script>
<img src="http://static.example.com/logo.png" alt="Example homepage">
<img src="http://static.example.com/logo.png" alt="Example homepage">
<form action="http://example.com/contact/" method="post"></form>
| Grup | Tekrar sayısı | Sınıflandırma |
|---|---|---|
/site.js ile biten script[src] |
1 | Engellenebilir |
/logo.png ile biten img[src] |
2 | Yükseltme adayı |
/contact/ ile biten form[action] |
1 | Güvensiz form hedefi |
Özet; bir engellenebilir referans, iki yükseltme adayı ve bir form referansı sayar: üç satırda toplam dört tekrar. Bu, dört farklı dosya veya doğrulanmış dört ağ isteği demek değildir. Örnek, raporun gruplama mantığını gösterir; canlı tarama veya eksiksiz çalışan iletişim formu değildir.
Tekrarlanan referansın ilgili içerik veya ortak bileşendeki bütün örneklerini bulun. Yalnızca ilk gösterilen satırı düzeltmek diğerini değiştirmeden bırakabilir. Hangi CMS alanının, tema ayarının veya şablonun bu çıktıyı ürettiğine karar vermeden önce o satırın çevresindeki gerçek kaynak metni inceleyin.
Göreli yolları değiştirmeden önce temel URL'leri inceleyin
Gösterilen kaynak URL'si, belgenin etkin temel adresine göre çözümlenir. Özel bir base yoksa göreli yollar son sayfa URL'sini kullanır. HTTP kullanan <base href> ise sayfa HTTPS üzerinden alınsa bile göreli referansı HTTP'ye dönüştürebilir.
Kurgusal https://example.com/guides/setup/ sayfasında şu parçayı düşünün:
<head><base href="http://static.example.com/assets/"></head>
<body><img src="logo.png" alt="Example homepage"></body>
Görsel, HTTPS sayfanın dizinine değil, http://static.example.com/assets/logo.png adresine çözümlenir. //static.example.com/assets/logo.png gibi protokole göreli referans da base adresinin protokolünü kullanır. Bu nedenle yalnızca http: bölümünü kaldırmak güvenli bir hedef oluşturulduğunu kanıtlamaz.
HTML base başvurusu, ilk geçerli temel adresin göreli URL'leri nasıl belirlediğini açıklar. Base ile amaçlanan dosya konumunu birlikte inceleyin. Onu değiştirmek diğer kaynakları, gezinmeyi ve form hedeflerini etkileyebilir; bu etkileri değerlendirmeden bilerek konmuş bir base değerini kaldırmayın. Açıkça yazılmış, çalışan HTTPS kaynak adresi amaçlanan değişikliği daha anlaşılır kılabilir.
Güvensiz referansı çalışan HTTPS hedefiyle değiştirin
Referansın üretildiği yerden başlayın. Eski görsel URL'si bir makale alanında, logo ayarında veya ortak şablonda olabilir; gömülü script, entegrasyonun sağladığı koddan gelebilir. Bir sonraki yayında üzerine yazılacak oluşturulmuş HTML'i değil, bu kaynağı düzeltin. Sitedeki ilgisiz http:// metinlerini topluca değiştirmekten kaçının.
Önerdiğiniz HTTPS hedefini kullanmadan önce kontrol edin. Beklenmeyen yönlendirme, erişim ekranı veya farklı içerik yerine amaçlanan görseli, scripti ya da diğer kaynağı sağlamalıdır. Bu denetleyici o isteği yapmamıştır. Sunucu aynı dosyayı güvenli bağlantıyla sunmuyorsa http://static.example.com/site.js adresini HTTPS'e çevirmek başarısız olabilir.
Üçüncü taraf bağımlılığın uygun güvenli sürümü yoksa desteklenen alternatifi isteyin veya özelliğin kaldırılması ya da değiştirilmesi gerekip gerekmediğine karar verin. Bulguyu temizlemek için sessizce ilgisiz bir dosya koymayın. Formlarda yalnızca adresin yazımını değil, alıcı uç noktasını ve beklenen davranışı doğrulayın.
upgrade-insecure-requests içeren Content Security Policy, kaynakta HTTP referansları kalırken tarayıcı isteklerini değiştirebilir. Yönerge dokümanında açıklandığı gibi, erişilemeyen HTTPS kaynağı HTTP'ye geri dönmeden başarısız olabilir. Bu, yükseltilen her kaynağın çalıştığının kanıtı değildir. Bildirilen yanıt başlıklarını ayrıca incelemek için HTTP Headers Checker kullanın; mevcut politikayı körlemesine değiştirmeyin veya sorunu gizlemek için tarayıcı korumalarını kapatmayın.
Yayınlanan kaynağı ve tarayıcı isteklerini birlikte doğrulayın
Değişiklik yapmadan önce ilk raporu ve amaçlanan alternatifi birlikte saklayın. JSON indirme, tutulan bulgu ve grupları korur; kategori seçimi tam rapor indirmesini değil, tablo görünümünü değiştirir. Araçta CSV dışa aktarma veya otomatik düzeltme yoktur.
- Düzeltilen içeriği, ayarı veya şablonu yayınlayın; güncel yanıt erişilebilir olduğunda aynı HTTPS sayfayı yeniden kontrol edin.
- İlgili URL, öğe, öznitelik ve tekrar sayısını karşılaştırın. Azalan toplam, başka bir referansın kaldığını gizleyebilir; yalnızca özeti değil satırları da inceleyin.
- Sayfayı tarayıcıda açıp geliştirici konsolu uyarılarını ve ağ isteklerini inceleyin. İlgili görseli, medyayı veya özelliği deneyin; kaynak raporu bu etkileşimleri çalıştırmaz.
- Aynı değişen şablonu kullanan diğer sayfaları da kontrol edin. Ana sayfanın düzelmesi her ürünün veya makalenin düzeldiğini kanıtlamaz.
Chrome güvenlik paneli rehberi, güvenli olmayan origin'lerden ilgili ağ isteklerine nasıl ulaşılacağını açıklar. Tarayıcı kanıtı, yalnızca kaynak inceleyen aracın görmediği script veya stillerin oluşturduğu istekleri ortaya çıkarabilir. Orijinal kaynakta HTTP varken yükseltilen veya engellenen isteği de gösterebilir.
Bu gözlemleri ayrı tutun: düzeltilmiş kaynak referansı ve başarılı tarayıcı isteği farklı soruları yanıtlar. Hiçbiri tek başına bütün içeriğin, her tarayıcının veya sitenin tamamının güvenli olduğunu kanıtlamaz.
Eksik bulguları ve kısmi kapsamı anlayın
Denetleyici en fazla 2 MiB HTML kabul eder; 200 gruplandırılmış satırda en fazla 1.000 HTTP referansı tutar. Sonuç sınırı daha fazla kanıtın tutulmasını engellerse kapsam kısmi olur ve toplam referans sayısı bilinmez. Özet, belgedeki her referansı değil tutulan kısmı anlatır. Kaynak alınamazsa veya HTML sınırını aşarsa istenen kontrol kullanılamaz durumda kalır.
Bulgu olmaması, incelenen kaynak kapsamında desteklenen HTTP referansı bulunmadığını gösterir. JavaScript ile oluşturulan istekleri, CSS url() değerlerini, dış stil dosyalarının içeriğini, iç çerçeve belgelerini veya olası her kaynak özniteliğini kapsamaz. Kaynak yönlendirmeleri de izlenmez: sonradan HTTP'ye yönlenen bir HTTPS dosyasını yalnızca ilk özniteliği okuyarak belirlemek mümkün değildir.
HTTP sayfaya giden sıradan bağlantılar dahil normal gezinme bağlantıları kapsam dışıdır. İndirme davranışı ve hedefin güvenliği ayrı inceleme ister; tabloda olmamaları onaylandıkları anlamına gelmez. Sorunuz gömülü kaynaklar yerine sayfanın dışarı verdiği bağlantılarla ilgiliyse Internal Link Analyzer kullanın.
Kısmi raporda kapsamı JSON indirmesiyle saklayın ve kalan kaynak referanslarını ayrıca inceleyin. Gösterilen satırları kaldırmak, gösterilmeyen referansların düzeldiğini kanıtlamaz. Değişikliklerden sonra tekrar çalıştırın ve doğrulanmış düzeltmeyle hiç incelenmemiş kanıtı ayırabilmek için önceki raporu saklayın.