Defaults.Exposed

Defaults.ExposedDüzeltmeler › Tıklama korsanlığı koruması (X-Frame-Options)

Tıklama korsanlığı koruması (X-Frame-Options) nasıl düzeltilir

Diğer web sitelerinin sitenizi kendi içlerinde gizlice yüklemesine izin vermeyen tek satırlık bir talimattır. Bu olmadan, dolandırıcı gerçek, oturum açılmış sayfalarınızı sahte sayfanın arkasına gizleyerek müşterilerinizi hiç yapmak istemedikleri şeyleri — bir ödemeyi onaylama, şifre değiştirme, erişim izni verme — tıklatabilir.

İşletmeniz için sonuç: Dolandırıcı, canlı web sitenizi sahte bir sitenin içine görünmez şekilde sarabilir ve oturum açmış müşterilerinizden para veya hesap erişimi çalabilir — ve müşteriye göre bunu siteniz yaptı. Düzeltme ücretsizdir ve bir geliştirici için yaklaşık 15 dakika alır; bunu kapatmamak hem suçlular hem de tedirgin alıcıların saniyeler içinde tespit edebileceği bilinen bir açıktır.

Bu size ne mal olabilir

Neden önemlidir. Bu, birkaç dakikada eklenebilen ücretsiz, tek satır bir ayardır ve oturum açmış müşterilerinizi hedef alan bir hile kategorisinin tamamını kapatır. Puanlamamızda yüksek önem derecesiyle değerlendirilen gerçek puanlar taşıyan web güvenlik kontrolüdür; çünkü eksik başlık, suçluların otomatikleştirdiği ve alıcıların aradığı bilinen, kolayca kontrol edilebilir bir açık bırakır.

Sade dille nedir

Biri web sitenizi ziyaret ettiğinde tarayıcısı sitenizi başka bir web sitesinin içine yüklemeye de çağrılabilir — daha büyük sayfanın içine gömülü küçük bir pencere gibi. Bu kulağa zararsız gelir ve bazen öyledir. Ama tıklama korsanlığı adı verilen saldırının mekanizması budur.

İşte hile şudur. Dolandırıcı kendi sayfasını oluşturur ve gerçek web sitenizi içine gizlice yükler — tamamen şeffaf, tamamen görünmez yaparak. Ardından kendi içeriğini üzerine yayar: gösterişli düğme, “Video oynat”, “Ödülünüzü talep edin.” Müşteriniz saldırganın sayfasını görür ve zararsız görünen bir düğmeye tıklar. Ama gerçek siteniz imlecinin tam altında görünmez oturduğundan, tıklama aslında sizin sayfanıza iner — ödeme onaylar, şifre değiştirir, erişim kabul eder, izin verir. Müşteri bir şey tıkladığını sanıyor; aslında güvendiği sitede başka bir şeyi tıkladı.

Tıklama korsanlığı koruması, web sitenizin her ziyaretçinin tarayıcısına gönderdiği kısa, görünmez bir talimattır, etkin olarak şunu söyler:

“Diğer web sitelerinin beni içlerine yüklemesine izin verme. Biri denerse reddet.”

Modern tarayıcılar buna otomatik olarak uyar. Açıkken hile basitçe işe yaramaz — sitenizin gömülü kopyası yüklenmeyi reddeder. Onsuz siteniz bir dolandırıcılıkta gizli katman olarak kullanılmaya açıktır; yakalanan müşteri tüm durumu sizin markanızla, saldırganın değil, ilişkilendirir.

Size maliyeti ne olabilir

Bunlar gerçekçi, günlük senaryolardır. Gerçek bir işletmeyi asla adlandırmayız; bunlar boşluğun nasıl kullanıldığının örnekleridir.

  1. Görünmez “onayla.” Müşteri bir sekmede hesap portalınıza giriş yapmış. Cazip bir şey vaat eden ve büyük “Devam” düğmesi gösteren bir sayfaya geliyor (reklamdan, e-postadan, arama sonucundan). O düğmenin altına gömülü olan kendi oturum açılmış hesabından gerçek “Havaleeyi Onayla” veya “E-postayı Değiştir” kontrolüdür. “Devam”a tıklar — ve istemeden sizinle gerçek hesabında gerçek değişiklik yapar. Hem ona hem de destek ekibinize göre bunu onlar sizin sitenizde yaptı.

  2. Ayar ele geçirme. Saldırgan hesap ayarları sayfanızı çerçeveler ve üzerine masum bir oyun veya anket koyar. Birkaç tıklama doğru yerlerde sessizce ayarı değiştirir — saldırganın e-posta adresini kurtarma adresi olarak ekler, uygulama izni verir veya güvenlik uyarısını devre dışı bırakır. Hesap şimdi sessizce ele geçirilmiştir ve o anda hiçbir şey yanlış görünmemiştir.

  3. Duran anlaşma. Daha büyük bir müşteri imzalamadan önce standart güvenlik anketini gönderiyor. Bir satır sitenizin anti-çerçeveleme koruması ayarlayıp ayarlamadığını soruyor (X-Frame-Options / CSP frame-ancestors). BT ilgili kişinizin “hayır” yanıtı vermesi gerekiyor ve tedarik, alıcı önünde kırmızı bayrak gibi görünen ücretsiz, 15 dakikalık ayarı düzeltirken bekliyor.

  4. Marka-yem-olarak kampanya. Gerçek, güvenilir sayfalarınız yerleştirilebildiğinden saldırgan sizin giriş veya kasanızı daha geniş bir kimlik avı kampanyasında inandırıcı katman olarak kullanır. Yakalanan müşteriler belirsiz saldırganı değil, insanların kazındığı zamanı “sitenizin” onları dolandırmasına izin verdiği şeklinde hatırlar.

  5. Denetim işaretlemesi. Sigortacı taraması veya güvenlik duruşunuzu inceleyen denetçi, bulgular arasında eksik tıklama korsanlığı korumasını listeler. Bu klasik temel hijyen öğesidir; işaretlenmesi, kolay, ücretsiz korumaların yerinde olmadığına işaret eder — bu da güvenliğinizin geri kalanının nasıl değerlendirildiğini etkiler.

Temel mesaj: zarar gerçek, oturum açmış bir müşteriye istemeden bir şey yaparak iniyor — ve adınızı taşıyor, saldırganın değil.

Teknik olarak nedir

Tarayıcı web sitenizden bir sayfa istediğinde sunucunuz sayfayı artı bazı görünmez “başlıklar” — tarayıcının okuduğu ama ziyaretçinin asla görmediği ekstra talimatlar — gönderir. Tıklama korsanlığı koruması bu başlıklar aracılığıyla iletilir. İki tane var ve kontrolümüz herhangi biri mevcutsa geçer:

1. Eski başlık — X-Frame-Options:

X-Frame-Options: SAMEORIGIN

Bu uzun süredir desteklenen, yaygın kontrol. İki pratik değer alır:

2. Modern başlık — Content-Security-Policy frame-ancestors:

Content-Security-Policy: frame-ancestors 'self';

Bu daha yeni, daha esnek kontrol ve mevcut standartların işaret ettiği. Aynı işi yapar ama sizi kimin yerleştirebileceği konusunda hassas olmanıza izin verir:

”İyi” neye benzer

En güçlü kurulum her ikisini kullanır: modern tarayıcılar için (ve yerleştirmeye izin verilen kişileri adlandırmanın hassasiyeti için) frame-ancestors ve eski istemciler için X-Frame-Options: SAMEORIGIN yedek olarak. Kontrolümüz her birinden birini tek başına kabul eder — ama her ikisi de ücretsiz ve aynı birkaç dakikayı aldığından, her ikisini de ayarlamamak için hiçbir neden yoktur.

Geliştiricinin bilmesi gereken önemli bir ayrıntı: Content-Security-Policy-Report-Only başlığı hiçbir şeyi uygulamaz — yalnızca raporlar. Tıklama korsanlığı korumasının gerçekten etkili olması için uygulamalı başlıktan (frame-ancestors’lı normal Content-Security-Policy veya X-Frame-Options) gelmesi gerekir, yalnızca raporlama modundan değil.

Nasıl düzeltilir (ücretsiz, ~15 dakika)

Bu bölümü web sitenizi çalıştıran kişiye iletin — BT uzmanı, web geliştiriciniz veya barındırma desteği. Düzeltme ücretsizdir. Bir veya iki yanıt başlığı veya CDN’nizdeki bir kuraldır. Satın alınacak hiçbir şey yok.

Kontrol, X-Frame-Options başlığının (DENY veya SAMEORIGIN olarak ayarlanmış) veya CSP frame-ancestors direktifinin mevcut olması durumunda geçer. Önerilen kemerli-kemerler kurulumu her ikisini de ekler.

1. Adım — Ne kadar katı olacağınıza karar verin

2. Adım — Başlıkları ekleyin (platformunuzu seçin)

Nginxserver bloğunuzun içine:

add_header X-Frame-Options "SAMEORIGIN" always;
add_header Content-Security-Policy "frame-ancestors 'self';" always;

Apachemod_headers etkin, sanal barındırıcınızda:

Header always set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self';"

Microsoft IISweb.config’de <customHeaders> içine:

<add name="X-Frame-Options" value="SAMEORIGIN" />
<add name="Content-Security-Policy" value="frame-ancestors 'self';" />

Cloudflare (veya benzer CDN): Kurallar → Dönüştürme Kuralları → Yanıt Başlığını Değiştir’e gidin ve tüm yanıtlara X-Frame-Options’ı SAMEORIGIN’e, Content-Security-Policy’i frame-ancestors 'self';’e ayarlayan iki kural ekleyin. Doğrudan sunucu erişiminiz yoksa en kolay yoldur.

Başka bir amaçla zaten Content-Security-Policy gönderiyorsanız? İkinci CSP başlığı oluşturmayın — frame-ancestors’ı mevcut politikanıza ekleyin. İki CSP başlığı çakışabilir.

Web sitesi oluşturucular (Squarespace, Wix, Shopify ve benzeri): Bu platformlar çoğunlukla anti-çerçeveleme korumasını sizin için ayarlar; dolayısıyla yapılacak hiçbir şey olmayabilir. Kontrolümüz bunu işaretliyorsa kontrol genellikle platformun güvenlik ayarlarındadır ya da sitenin önündeki CDN’e eklersiniz. (Not: Google Workspace ve Microsoft 365 e-postanızı güçlendiriyor; bu başlık, genel sitenizin gerçekte bulunduğu yere ayarlanır, Workspace/365 yöneticisine değil.)

3. Adım — Yeniden yükle ve doğrula

Web sunucusunu yeniden yükleyin veya CDN kuralını dağıtın; ardından canlı sitenizi yükleyin ve yanıt başlıklarını kontrol edin — tarayıcı geliştirici araçları → Ağ sekmesi → sayfa isteğine tıklayın → Yanıt Başlıkları, ya da herhangi bir ücretsiz başlık kontrol aracı. Başlıkların yalnızca ana sayfada değil, gerçek sayfa yanıtlarında göründüğünü doğrulayın. Ardından kontrolü yeniden çalıştırın.

Yaygın hatalar

SSS

Teknik bilgim yok — bunu kendim halledebilir miyim?

Teknik kısmı yapmanıza gerek yok. Web sitenizin sunucusuna veya CDN'nize eklenen tek bir ayardır; herhangi bir web geliştirici veya BT sağlayıcısı birkaç dakikada ekleyebilir. 'Nasıl düzeltilir?' bölümünü onlara iletin — tam olarak ne ekleneceklerini söylüyor. Düzeltme ücretsizdir; yalnızca yerinde kaldığını izlememizi istiyorsanız ücret alıyoruz.

Bu kendi sitemin veya meşru ortakların sayfalarımı göstermesini durduracak mı?

Yalnızca çok katı ayarlarsanız. Yaygın ayar ('SAMEORIGIN' veya 'frame-ancestors self') kendi web sitenizin kendi sayfalarını normal şekilde yerleştirmesine izin verir — yalnızca dış siteleri engeller. Gerçek bir ortağın sayfalarınızdan birini yerleştirmesi gerekiyorsa, geliştiriciniz yalnızca o kaynağa izin verirken herkesi engellemeye devam edebilir.

Küçük bir işletmeyiz — biri gerçekten bizi hedef alır mı?

Bu saldırılar elle seçilmiş değil, otomatik araçlarla toplu olarak gerçekleştirilir. Küçük siteler tam da bu gibi temel korumaları eksik oldukları için sıklıkla hedef alınır. Saldırganın kim olduğunuzu bilmesine gerek yok — sadece sitenizin yerleştirilebilir olması yeterli. Açığı kapatmanın size hiçbir maliyeti yoktur.

'İyi' gerçekte neye benzer?

SAMEORIGIN (veya DENY) olarak ayarlanmış X-Frame-Options başlığı, veya frame-ancestors direktifli bir Content-Security-Policy — ideally her ikisi. Kontrolümüz herhangi biri mevcut olursa geçer. Modern, daha esnek kontrol frame-ancestors'dır; X-Frame-Options hâlâ bazı eski tarayıcıları kapsayan daha eski başlıktır; dolayısıyla kemerli-kemerin kurulumu her ikisini de kullanır.

Bu, SSL asma kilidi veya HTTPS ile aynı şey değil mi?

Hayır — tamamen farklı şeylere karşı korurlar. HTTPS aktarım sırasında kimsenin okuyamaması için bağlantıyı şifreler. Tıklama korsanlığı koruması sayfalarınızın başkasının sitesine hiç yüklenmesini engeller. Mükemmel asma kilidiniz olabilir ve yine de tıklama korsanlığına açık olabilirsiniz. Bunlar ayrı kontrollerdir ve her ikisini de istersiniz.

Düzeltmezsek notumuz düşer mi?

Evet. Bu yalnızca bilgilendirme değil, puanlanan bir web güvenlik kontrolüdür — eksik başlık puan kaybettirir ve yüksek önem derecesiyle değerlendirilir; çünkü oturum açmış müşterileri doğrudan dolandırıcılığa maruz bırakır. Aynı zamanda kazanmanın en ucuz yollarından biridir: ücretsiz tek başlık, bir geliştirici için yaklaşık 15 dakika.