
Tarayıcıda 'karışık içerik' uyarısı alıyorum: Sorunun kaynağını HTTP başlıklarında bulma.
Web sitenizin ziyaretçileri, tarayıcılarında “güvenli değil” uyarısı veya küçük bir kalkan simgesi gibi
karışık içerik (mixed content) uyarıları alıyorsa, bu durum hem kullanıcı deneyimi hem de sitenizin genel sağlığı için ciddi bir sorundur. Google AdSense yayıncısı olarak bu tür uyarılar, sadece reklam gelirlerinizi düşürmekle kalmaz, aynı zamanda sitenizin
SEO performansını ve kullanıcıların sitenize olan güvenini de olumsuz etkiler. Çoğu zaman bu tür sorunların kaynağını HTML kodunuzda veya JavaScript dosyalarınızda ararız, ancak gözden kaçan önemli bir alan daha vardır: HTTP başlıkları. Bu makalede, bu gizli tehlikenin ne olduğunu, neden önemli olduğunu ve sorunu tespit etmek için
HTTP Header Görüntüleyici araçlarından nasıl yararlanacağımızı derinlemesine inceleyeceğiz.
Karışık İçerik Nedir ve Neden Önemlidir?
Karışık içerik, güvenli bir
HTTPS bağlantısı üzerinden yüklenen bir web sayfasının, aynı zamanda güvenli olmayan HTTP bağlantıları üzerinden resim, stil dosyası, JavaScript veya diğer kaynakları yüklemesi durumunda ortaya çıkar. Tarayıcılar, bu durumu bir
güvenlik açığı olarak algılar çünkü sayfadaki bazı içerikler dinlenebilir, değiştirilebilir veya manipüle edilebilir.
İki ana
karışık içerik türü vardır:
1.
Pasif Karışık İçerik (Passive Mixed Content): Bu, bir saldırganın sayfadaki içeriği değiştirebileceği ancak sayfanın genel davranışını manipüle edemeyeceği durumlardır. Örneğin, bir resmin HTTP üzerinden yüklenmesi. Bu tür içerik genellikle tarayıcı tarafından küçük bir uyarı veya sadece URL çubuğundaki kilit simgesinin kaybolmasıyla belirtilir.
2.
Aktif Karışık İçerik (Active Mixed Content): Bu, en tehlikeli olanıdır. Bir saldırganın sayfadaki tüm içeriği ve hatta sayfanın davranışını ele geçirebileceği durumları ifade eder. Örneğin, bir JavaScript dosyasının veya bir iframe'in HTTP üzerinden yüklenmesi. Tarayıcılar, bu tür içeriği genellikle engeller ve kullanıcıya büyük, göze çarpan bir
güvenlik uyarısı gösterir.
Bu uyarılar, kullanıcıların sitenizden hemen ayrılmasına neden olabilir. Bu da, sitenizin hemen çıkma oranını artırır, sayfa görüntülemelerini azaltır ve dolayısıyla
AdSense reklamlarınızın gösterim sayısını ve tıklama oranlarını düşürerek gelir kaybına yol açar. Ayrıca, Google ve diğer arama motorları,
HTTPS kullanan siteleri tercih ettiğinden,
karışık içerik uyarıları sitenizin
SEO sıralamalarını da olumsuz etkileyebilir. Modern web'de
HTTPS bir standart haline gelmişken, bu tür uyarılar sitenizin güvenilmez görünmesine neden olur.
Sorunun Kaynağını Nerede Aramalıyız?
Karışık içerik sorunlarını çözmeye başlarken, genellikle sayfanın HTML kodunu, CSS dosyalarını veya JavaScript'i inceleriz. `src` veya `href` özniteliklerinde 'http://' ile başlayan URL'leri ararız. Ancak, bazen bu doğrudan ipuçları yeterli olmayabilir. Örneğin:
*
Dış Kaynaklar: Bir CDN'den veya üçüncü taraf bir hizmetten gelen bir kaynak, içeride HTTP üzerinden yükleniyor olabilir.
*
Yönlendirmeler: Bir kaynağın URL'si
HTTPS gibi görünse de, arka planda bir HTTP kaynağına yönlendiriliyor olabilir.
*
Programatik Yüklemeler: JavaScript aracılığıyla dinamik olarak yüklenen kaynaklar, tarayıcının geliştirici araçlarında ilk bakışta kolayca görünmeyebilir.
*
HTTP Başlıkları: Sunucunuzdan veya proxy'lerinizden gelen
HTTP başlıkları, içeriğin nasıl teslim edildiğini ve tarayıcının bunu nasıl işlemesi gerektiğini belirleyebilir. Bu başlıklar, bazen dolaylı yoldan
karışık içerik sorunlarına yol açabilir veya var olan sorunları maskeleyebilir.
Bu gibi durumlar için,
HTTP başlıkları devreye girer. Bir web sayfasının yüklenmesi sırasında, tarayıcı sunucuyla bir dizi iletişim kurar ve bu iletişimin önemli bir parçası da
HTTP başlıklarıdır. Bu başlıklar, içeriğin kendisinden önce gelir ve tarayıcıya sayfa hakkında çeşitli talimatlar verir. Bu talimatlar arasında
güvenlik politikaları da yer alır.
HTTP Başlıkları ve Güvenlik İlişkisi
HTTP başlıkları, bir web sunucusu ile tarayıcı arasındaki "konuşmanın" temelini oluşturur. Tarayıcıya, içeriğin türü, nasıl önbelleğe alınacağı, hangi güvenlik politikalarının uygulanacağı gibi kritik bilgiler sunar. Bu başlıklar, özellikle
HTTPS kullanımında ve
güvenlik odaklı bir web sitesi sağlamada hayati bir rol oynar.
İşte
karışık içerik sorunlarıyla ilişkili olabilecek veya bunları önlemeye yardımcı olabilecek bazı önemli HTTP başlıkları:
*
Content-Security-Policy (CSP): Bu başlık, tarayıcıya hangi kaynakların (scriptler, stiller, resimler vb.) yüklenebileceği konusunda katı kurallar koyar. Yanlış yapılandırılmış bir CSP, bazen HTTP üzerinden yüklenen kaynaklara izin verebilir veya var olan
karışık içerik sorunlarını engellemeyebilir. Ancak doğru kullanıldığında,
karışık içerik sorunlarını tamamen ortadan kaldırmak için güçlü bir araçtır. Daha fazla bilgi için bu makaleye göz atabilirsiniz: `/makale.php?sayfa=content-security-policy-rehberi`.
*
Strict-Transport-Security (HSTS): HSTS başlığı, bir web sitesinin yalnızca
HTTPS üzerinden erişilebilir olması gerektiğini tarayıcılara bildirir. Bir tarayıcı bir kez bu başlığı aldığında, belirtilen süre boyunca siteye yapılan tüm HTTP isteklerini otomatik olarak
HTTPS'e dönüştürür. Bu, bir kullanıcının sitenize ilk ziyaretinde bir HTTP yönlendirmesi sırasında yaşayabileceği
karışık içerık riskini azaltır.
*
X-Content-Type-Options: nosniff: Bu başlık, tarayıcının yanıtın `Content-Type` başlığını göz ardı ederek içeriği "koklamasını" (sniffing) engeller. Bu, kötü niyetli içerik yüklemelerinin önlenmesine yardımcı olabilir, ancak doğrudan
karışık içerik ile ilgili olmasa da genel
güvenlik duruşunu iyileştirir.
*
Referrer-Policy: Bu başlık, bir sayfadan diğerine geçiş yaparken tarayıcının gönderdiği yönlendiren (referrer) bilgisini kontrol eder. Doğru yapılandırıldığında, hassas bilgilerin HTTP üzerinden sızmasını önleyebilir, ancak
karışık içerikin ana kaynağı değildir.
*
Location (Yönlendirme Başlığı): Bir sunucu, `301 Moved Permanently` veya `302 Found` gibi bir yönlendirme yanıtı gönderdiğinde, `Location` başlığı tarayıcıya nereye yönlenmesi gerektiğini söyler. Eğer bir
HTTPS sayfasından bir HTTP URL'sine yönlendirme yapılıyorsa veya bir
HTTPS kaynağına yönlendirme zinciri içinde bir HTTP adımı varsa, bu
karışık içerik sorununa yol açabilir.
HTTP Header Görüntüleyici Araçları ile Sorun Tespiti
Peki, bu
HTTP başlıklarını nasıl görecek ve
karışık içerik sorunlarının kaynağını nasıl tespit edeceğiz? İşte burada
HTTP Header Görüntüleyici araçları devreye girer. Bu araçlar, tarayıcınız ile sunucu arasındaki tüm iletişimi yakalar ve size başlıkları ayrıntılı bir şekilde gösterir.
Nasıl Kullanılır:1.
Tarayıcı Geliştirici Araçları: En yaygın ve erişilebilir yöntemdir.
* Tarayıcınızda (Chrome, Firefox, Edge vb.) sitenizi açın.
* Sağ tıklayın ve "İncele" (Inspect) seçeneğini seçin veya F12 tuşuna basın.
* "Ağ" (Network) sekmesine gidin.
* Sayfayı yenileyin.
* Sol tarafta yüklenen tüm kaynakları göreceksiniz. Herhangi birine tıkladığınızda sağ tarafta "Başlıklar" (Headers) sekmesini göreceksiniz. Burada isteğin ve yanıtın tüm
HTTP başlıklarını inceleyebilirsiniz. Özellikle 200 (OK), 301 (Moved Permanently), 302 (Found) gibi yanıt durumlarına dikkat edin.
2.
Online HTTP Header Görüntüleyici Araçları: `reqbin.com`, `web-sniffer.net` veya benzeri birçok çevrimiçi araç, bir URL girmenize olanak tanır ve size o URL'ye yapılan isteğin ve yanıtın tüm
HTTP başlıklarını gösterir. Bu araçlar, özellikle sitenizden bağımsız olarak belirli bir kaynağın başlıklarını kontrol etmek için kullanışlıdır.
3.
Tarayıcı Eklentileri: Birçok tarayıcı eklentisi de (örneğin, HTTP Header Live, ModHeader) size
HTTP başlıklarını anlık olarak görüntüleme ve hatta değiştirme imkanı sunar.
Ne Aramalısınız:*
Yönlendirme Zincirleri: Bir
HTTPS URL'sine giderken, zincirdeki herhangi bir adımda `Location` başlığı sizi bir HTTP URL'sine yönlendiriyor mu? Örneğin, `https://example.com/resim.jpg` isteği `http://cdn.example.com/resim.jpg` adresine yönlendiriliyorsa, sorun budur.
HTTP Header Görüntüleyici ile her yönlendirme adımını ayrı ayrı inceleyebilirsiniz.
*
Content-Security-Policy (CSP) İhlalleri: Eğer bir CSP başlığı kullanıyorsanız, tarayıcı konsolunda CSP ihlali mesajlarını arayın. Bu mesajlar, hangi kaynağın hangi politika tarafından engellendiğini veya hangi politika yönergesinin HTTP içeriğine izin verdiğini gösterebilir.
*
`Upgrade-Insecure-Requests` Başlığı: Bu başlık, tarayıcılara HTTP üzerinden yüklenmeye çalışılan tüm güvensiz istekleri
HTTPS'e yükseltmesini söyler. Bu, pasif
karışık içerik sorunlarını çözmede oldukça etkili olabilir ve `Content-Security-Policy` ile birlikte kullanılır. Eğer bu başlığı sunucunuzdan göndermiyorsanız, eklemeyi düşünebilirsiniz.
*
`Strict-Transport-Security` (HSTS) Başlığının Yokluğu veya Kısa Süresi: Sitenizin ana etki alanı için HSTS başlığı yoksa veya `max-age` değeri çok düşükse, kullanıcılar ilk ziyaretlerinde hala HTTP üzerinden erişim riskiyle karşı karşıya kalabilirler. Bu da bir saldırganın araya girerek
karışık içerik enjekte etmesi için bir pencere oluşturur.
AdSense ve SEO Perspektifinden Karışık İçerik
AdSense gelirleriniz ve
SEO performansınız için
karışık içerik sorunlarını çözmek, bir tercih değil, bir zorunluluktur. Google, kullanıcı
güvenliğini en üst düzeyde tutar ve
AdSense politikaları da bunu yansıtır. Güvensiz veya uyarı veren siteler,
AdSense tarafından reklam gösteriminde kısıtlamalara maruz kalabilir veya hatta hesapları askıya alınabilir. Kullanıcılar, tarayıcılarındaki
güvenlik uyarılarını gördüklerinde reklamlara tıklama veya sitede kalma olasılıkları çok daha düşüktür.
SEO açısından, Google'ın
HTTPS'i bir sıralama faktörü olarak kullanması,
karışık içerikin giderilmesinin önemini daha da artırmaktadır. Bir web sitesi
HTTPS kullanıyor gibi görünse de
karışık içerik uyarıları veriyorsa, bu durum Google'ın sitenizin
güvenlik seviyesini sorgulamasına neden olabilir. Bu da arama sonuçlarında daha düşük sıralamalara veya kullanıcıların sitenizi ziyaret etmeye çekinmesine yol açar. Google Search Console, sitenizdeki
HTTPS sorunlarını ve
güvenlik uyarılarını raporlayabilir, bu nedenle düzenli olarak kontrol etmek önemlidir. Özellikle büyük bir site migrasyonu sonrası `/makale.php?sayfa=https-gecisinin-seo-etkileri` gibi bir rehberden faydalanmak isteyebilirsiniz.
Geleceğe Yönelik Önlemler ve En İyi Uygulamalar
Karışık içerik sorunlarını kökten çözmek ve gelecekteki sorunları önlemek için şu en iyi uygulamaları benimseyin:
1.
Her Zaman HTTPS Kullanın: Varsayılan olarak tüm sitenizi
HTTPS üzerinden sunun. Tüm dahili bağlantılarınızı ve kaynak URL'lerinizi
HTTPS olarak güncelleyin.
2.
Protokol-Agnostik URL'ler: Mümkün olduğunca, kaynakları `//domain.com/resource.jpg` gibi protokol-agnostik URL'lerle çağırın. Bu, tarayıcının o anki sayfanın protokolünü kullanarak kaynağı yüklemesini sağlar. Ancak, bu her zaman çözüm olmayabilir ve doğrudan
HTTPS URL'lerini kullanmak daha güvenlidir.
3.
Sunucu Yapılandırmasını İnceleyin: Web sunucunuzun (Apache, Nginx vb.) ve CDN'inizin
HTTPS'i doğru şekilde yapılandırdığından ve tüm HTTP isteklerini
HTTPS'e yönlendirdiğinden emin olun.
4.
Content-Security-Policy (CSP) Uygulayın: Güçlü bir CSP başlığı,
karışık içerikin ve diğer birçok XSS (cross-site scripting) saldırısının önlenmesinde son derece etkilidir. `upgrade-insecure-requests` direktifini eklemeyi düşünün.
5.
Strict-Transport-Security (HSTS) Kullanın: HSTS, tarayıcıları sitenize yalnızca
HTTPS üzerinden bağlanmaya zorlayarak man-in-the-middle saldırılarını ve
karışık içerik riskini azaltır.
6.
Düzenli Denetimler Yapın: Sitenizi düzenli olarak
karışık içerik ve diğer
güvenlik açıklarına karşı denetleyin. Geliştirici araçları ve çevrimiçi araçlar bu konuda size yardımcı olacaktır.
Sonuç olarak, tarayıcınızda gördüğünüz
karışık içerik uyarısı basit bir estetik kusurdan çok daha fazlasıdır; sitenizin
güvenlik,
web sitesi performansı,
SEO ve
AdSense gelirleri üzerinde doğrudan etkisi olan ciddi bir sorundur.
HTTP Header Görüntüleyici araçları, bu tür sorunların HTTP başlıklarındaki gizli nedenlerini ortaya çıkarmak için paha biçilmez bir kaynaktır. Bu araçları kullanarak sorunun kaynağını bulabilir, gerekli düzeltmeleri yapabilir ve sitenizin hem kullanıcılar hem de arama motorları için güvenli ve güvenilir bir platform olmasını sağlayabilirsiniz.
Yazar: Tarkan Tevetoğlu
Ben Tarkan Tevetoğlu, bir Akademisyen ve Araştırmacı. Platformumuzda teknolojiyi herkes için anlaşılır kılmak, karmaşık konuları basitleştirerek okuyucularımızın günlük yaşamında pratik olarak kullanabileceği bilgiler sunmak, yeni beceriler kazandırmak, farkındalık oluşturmak ve teknoloji dünyasındaki gelişmeleri anlaşılır bir dille aktarmak amacıyla yazıyorum.