iframe Güvenliği: Tıklama Korsanlığı ve X-Frame-Options
X-Frame-Options ve CSP ile tıklama korsanlığı saldırılarını önleyin
iframe Güvenliği: Tıklama Korsanlığı ve X-Frame-Options, CoddyKit'te ücretsiz bir HTML Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, HTML Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. HTML Academy kursu toplamda 4 dersten oluşur.
Tıklama Korsanlığı Nedir?
Tıklama korsanlığı (kullanıcı arayüzünü yeniden giydirme), hedef siteyi sahte bir sayfanın üzerine yerleştirilmiş saydam bir iframe içine gömer. Kullanıcı sahte sayfaya tıkladığını düşünür, ancak aslında altta bulunan, kimlik doğrulaması yapılmış gizli sayfaya tıklar ve hedef sitede bilgisi dışında işlemler gerçekleştirir.
Tıklama Korsanlığı Saldırısının İşleyişi
Saldırgan, victim.com sitesini "Kazanmak için tıklayın!" düğmesinin üzerine yerleştirilmiş saydam bir iframe içine yükler. Kullanıcı tıkladığında aslında victim.com sitesindeki "Hesabı Sil" düğmesine tıklar; victim.com oturum çerezinde kendisi olarak kimlik doğrulaması yapılmıştır. Kimlik avı gerekmez.
X-Frame-Options Üst Bilgisi
X-Frame-Options: DENY, sayfanın herhangi bir iframe içine yüklenmesini engeller. X-Frame-Options: SAMEORIGIN, iframe içine yalnızca aynı kaynaktaki sayfalar tarafından yerleştirilmesine izin verir. Tıklama korsanlığını önlemek için bu üst bilgiyi sunucu tarafında kimlik doğrulaması yapılmış tüm sayfalarda ayarlayın.
Content-Security-Policy frame-ancestors
Content-Security-Policy: frame-ancestors 'none', X-Frame-Options: DENY'nin modern ve daha esnek karşılığıdır. frame-ancestors 'self', SAMEORIGIN'in yerini alır. frame-ancestors, belirli güvenilir kaynaklara da izin verebilir: frame-ancestors https://trusted.example.com.
JavaScript ile Çerçeveden Çıkma
Eski çerçeveden çıkma yöntemlerinde çerçeveden kurtulmak için JavaScript kullanılırdı. Bu yöntemler, sandbox özniteliği tarafından kolayca etkisizleştirilebilir (çerçeveden çıkma betiğini engeller). Her zaman sunucu tarafı üst bilgilerini (X-Frame-Options veya CSP frame-ancestors) kullanın; JavaScript ile çerçeveden çıkma güvenilir değildir.
Çerçevelemeye Ne Zaman İzin Verilmeli
Çerçevelemenin meşru kullanım alanları şunlardır: kendi içeriğinizi kendi kaynağınızda gömmek (SAMEORIGIN) ve belirli bir iş ortağının bileşeninizi gömmesine izin vermek (belirli kaynakla birlikte frame-ancestors). İlkeyi bu durumlara izin verecek, diğer tüm durumları reddedecek şekilde tasarlayın.
Birleşik Yaklaşım
En geniş kapsamı elde etmek için hem X-Frame-Options'ı (eski tarayıcılar için) hem de CSP frame-ancestors'ı (modern tarayıcılar için) ayarlayın. İkisi de bulunduğunda CSP'yi destekleyen tarayıcılarda frame-ancestors önceliklidir. Her ikisini göndermek, tüm kullanıcı aracıları arasında tıklama korsanlığı koruması sağlar.
Aynı Kaynaklı iframe'lerin Riskleri
Aynı kaynaklı iframe'ler bile risk oluşturabilir: gömülü bir sayfadaki depolanmış XSS, aynı kaynaklıysa parent.document aracılığıyla üst öğeye erişebilir. Gömülü içerikteki güvenlik açıklarından kaynaklanan zararı sınırlamak için üst öğeye erişmesi gerekmeyen aynı kaynaklı iframe'lerde allow-same-origin izni olmadan sandbox kullanın.
Korumanızı Sınama
Tıklama korsanlığı korumasını doğrulayın: X-Frame-Options veya CSP frame-ancestors için yanıt üst bilgilerini kontrol etmek üzere tarayıcının ağ sekmesini kullanın. securityheaders.com gibi araçlar üst bilgileri analiz eder. Sitenizi gösteren bir iframe içeren deneme HTML sayfası oluşturun ve yüklemenin başarısız olduğunu doğrulayın.
Üçüncü Taraf Yerleştirmeleri
Üçüncü taraf içeriklerini (YouTube, Google Haritalar) gömerken çerçeveleyen site siz olursunuz; gömülü hizmetin kendi X-Frame-Options ilkesinde çerçevelemeye izin verildiğinden emin olun. Çerçevelemeyi engelleyen bir siteyi gömemezsiniz; bu, tasarım gereğidir ve gömülü hizmetin kullanıcılarını korur.
Meta Etiketlerinde CSP frame-ancestors
Çoğu CSP yönergesinin aksine frame-ancestors, HTTP-equiv meta etiketi aracılığıyla ayarlanamaz; HTTP yanıtı üst bilgisi olarak gönderilmelidir. Bu, tarayıcı meta etiketlerini okumadan önce gömülü HTML'i değiştirerek saldırganların korumayı kaldırmasını engeller.
Bilgi Denetimi
JavaScript ile çerçeveden çıkma kodu neden güvenilmez bir tıklama korsanlığı savunmasıdır?
Özet
Tıklama korsanlığı, kimlik doğrulaması yapılmış sayfaları saydam iframe'lere gömerek tıklamaları ele geçirir. Savunma olarak sunucu tarafında X-Frame-Options: DENY veya CSP frame-ancestors: none üst bilgilerini kullanın. Tarayıcılar arası kapsam için ikisini de ayarlayın. JavaScript ile çerçeveden çıkma güvenilmezdir; her zaman HTTP üst bilgilerini kullanın. frame-ancestors, X-Frame-Options'ın sunamadığı ayrıntılı güvenilir kaynak izin listeleri oluşturma olanağı sağlar.
Sıkça Sorulan Sorular
“iframe Güvenliği: Tıklama Korsanlığı ve X-Frame-Options” dersi ücretsiz mi?
Evet — “iframe Güvenliği: Tıklama Korsanlığı ve X-Frame-Options” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve HTML Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. HTML Academy kursu toplamda 4 dersten oluşur.
“iframe Güvenliği: Tıklama Korsanlığı ve X-Frame-Options” dersinde ne öğreneceğim?
X-Frame-Options ve CSP ile tıklama korsanlığı saldırılarını önleyin HTML Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
HTML Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te HTML Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“iframe Güvenliği: Tıklama Korsanlığı ve X-Frame-Options” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu HTML Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her HTML Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- iframe Öğesi: src ve sandbox
- iframe Güvenliği: Tıklama Korsanlığı ve X-Frame-Options
- embed ve object Öğeleri
- iframe'lerde Tembel Yükleme