VPN bağlı ama karma içerik hâlâ engelli: ne düzeltilmeli
Engellenen URL'yi kimin ürettiğine göre sıralayın, başvuruyu düzeltin veya ana makine sahibine iletin, ardından düzeltmeyi tarayıcı konsolundan doğrulayın.
Sayfanın yarısı işleniyor, bir stil dosyası Ağ panelinde gri duruyor ve VPN istemcisi hâlâ sağlıklı bir tünel bildiriyor. Üç gözlem aynı anda doğru, çünkü tarayıcı sayfanın yaptığı bir isteği değerlendirdi ve tünelin bu değerlendirmede söz hakkı yoktu. Davayı bir ayar değil karar kapatır: başvuruyu düzeltmek, ana makine sahibine iletmek veya bağımlılıktan vazgeçmek. Bu seçeneklerin her birinin ucuz bir testi var ve yanlış olanı seçmek bir destek döngüsüne mal olur.
Tünel neden bir alt kaynağı kapsayamaz
Karma içerik düz HTTP üzerinden alt kaynak isteyen bir HTTPS belgesiyle başlar. Her URL kendi şemasına göre değerlendirilir, bu yüzden üst belgenin koruması hiçbir zaman bir alt isteğe yayılmaz. Tarayıcının altında eklenen şifreleme, tel üzerinden giden şeyi değiştirir, işaretlemenin istediği http:// adresini değil.
Güncel tarayıcılar bu istekleri iki gruba ayırır ve farklı davranır. Betikler, stil dosyaları, iframe'ler ve fetch, XMLHttpRequest veya WebSocket ile yapılan çağrılar önceden bir yükseltme denemesi olmadan doğrudan reddedilir. Görseller, ses ve video https:// biçimine yeniden yazılıp yeniden istenir ve bu güvenli getirme başarısız olduğunda yükleme bırakılır. Ana makinesi çıplak bir IP adresi olan alt kaynak URL'si yükseltmeden muaf tutulur, bu yüzden bir IP ana makinesindeki HTTP görseli sessizce onarılmak yerine engelli kalır. Bu ayrım, yükseltilebilir taraftaki söz konusu istisna dahil, Mozilla'nın karma içerik kılavuzunda belgelenmiştir. Chrome, güvenli bir sayfadan başlatılan güvensiz indirmelere benzer bir ret uygular, bu yüzden çevredeki sayfa sağlam görünürken bir PDF bağlantısı ölebilir.
Gri satır bu nedenle denetimin çalıştığının kanıtıdır, tünelin düz metin sızdırdığının kanıtı değil. Satırı tüm sayfaya değil tek bir başvuruya işaret eden bir bulgu olarak ele alın.
Güvensiz başvurunun kime ait olduğunu belirleyin
Sorunlu URL'yi herhangi bir şeyi değiştirmeden önce üretildiği yere göre sıralayın. Bu yanıt, bugün bir düzeltme yayımlayıp yayımlayamayacağınızı, bir tedarikçinin bir tane yayımlaması gerekip gerekmediğini veya bağımlılığın sayfadan çıkması gerekip gerekmediğini belirler. Ağ panelindeki Initiator sütunundan okuyun, çünkü ekrandaki işaretleme genellikle çalışma zamanında bir araya getirilir.
| URL nereden geliyor | Kim düzeltebilir | İlk adım |
|---|---|---|
| Dağıttığınız bir şablonda veya parçada sabit kodlanmış | Siz | https:// biçimiyle değiştirin ve ardından önbelleği temizleyin |
| Bir etiket yöneticisi veya tedarikçi paketi tarafından enjekte edilmiş | Tedarikçi, sizin kaydınızla | Tam URL'yi, istek türünü ve konsol satırını gönderin |
| Yalnızca 80 numaralı bağlantı noktasında TLS dinleyicisi olmadan sunulur | Ana makinenin sahibi | TLS isteyin, önüne sizin denetlediğiniz bir şey koyun veya ondan vazgeçin |
Ana makine zaten 443'te yanıt veriyorsa ve yalnızca başvuru http diyorsa, onarım yereldir: başvuruyu değiştirin, sayfa önbelleğini temizleyin ve satırın https olduğunu doğrulayın. Yalnızca 80 numaralı bağlantı noktasını dinleyen bir ana makine düzenlemeyle uyumlu hale getirilemez, bu yüzden kaynak taşınır, önüne denetlediğiniz bir şey konur veya ortadan kalkar. Bir etiket yöneticisi tarafından enjekte edilen URL, kendi şablonunuz temiz olsa bile görünmeye devam eder ve bu durum, tam URL ile konsol satırının eklendiği bir kayda aittir. Personele güvensiz içeriğe izin vermelerini söylemek bu seçeneklerden biri değildir, çünkü o tarayıcı profilinin ziyaret ettiği her site için denetimi kapatır.
Tarayıcı ayarını değil başvuruyu düzeltin
Başarısız akışı ağ günlüğü korunmuş halde yeniden yükleyin ve paneli şüphelendiğiniz ana makineye göre süzün. Konsol, URL'yi ve yönergeyi adlandırır; bu da bir şablonu değiştirmeden önce isteğin reddedildiğini mi yoksa yükseltildiğini mi kesinleştirir.
curl -sSI https://cdn.example.org/vendor.js | head -n 1
curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' -L https://cdn.example.org/vendor.jsİki yardımcı denetimi bilmeye değer ve hiçbiri onarımın yerini tutmaz. Content-Security-Policy başlığı upgrade-insecure-requests tarayıcının http alt kaynak URL'lerini sayfadan çıkmadan önce yeniden yazmasını sağlar, bu da henüz bulmadığınız eski başvuruları yakalar. Yeniden yazılan istek, hedef ana makine HTTPS sunmuyorsa yine de başarısız olur, bu yüzden başlık yalnızca tarayıcının hangi URL'yi denediğini değiştirir. HSTS ana makine başına geçerlidir, yani kendi alan adınızdaki bir ilke başlığı hiç göndermemiş bir üçüncü taraf CDN'i için hiçbir şey yapmaz. Şablon değişikliğinden sonra sayfa önbelleğini temizleyin ve işlenmiş HTML'de eski ana makine adını arayın, çünkü aynı URL bir parça, bir çeviri dizesi veya bir veritabanı alanı üzerinden de gelebilir.
Yönlendirmeleri de izleyin, çünkü https:// ile başlayan bir zincir http:// konumuna inebilir ve tarayıcı son atlamayı değerlendirir. İkinci komutun -L biçimi o etkin URL'yi sizin için yazdırır. Son atlama saf http ise, düzenlediğiniz bağlantı iyi görünse bile başvuru hâlâ yanlıştır.
Sayfayı konsol ve ağ paneliyle doğrulayın
Önbellek kapalıyken yeniden yükleyin ve akışı baştan geçin, istek üzerine içerik yükleyen düğmeler dahil. İlk sayfa yüklemesi tembel araçları, harita döşemelerini ve yalnızca tıklamadan sonra görünen oynatıcı betiklerini gizler. Konsolda karma içerik girdisi olmamalı ve dokunduğunuz her satır https göstermelidir. Kaydı kapatmadan önce konsolu ve istek satırını yakalayın, çünkü bu durumu sonraki dağıtımdan sonra yeniden kurmak zordur.
Kaynak başka birine aitse dört şey gönderin: tam URL, istek türü, konsol metni ve göründüğü sayfa. Bir kayda yapıştırdığınız her şeyde oturum tanımlayıcılarını gizleyin. Yalnızca görsellerin bozuk olduğunu söyleyen bir rapor, sahibine aranacak hiçbir şey vermez.
Düzeltme isteği üreten başvuruda yaşarken tünel kendi işini yapmaya devam eder. Dağıtımdan sonra ana makine adını şablonda ve tedarikçi paketinde bir kez daha arayın ve davayı yalnızca konsolda engellenmiş karma içerik girdisi kalmadığında kapatın.