XFO veya CSP ile tıklama tuşuyla saldırıyı azaltma

Tıklama tuzakçılığı, kullanıcıların güvenilir ve tanıdık görünen bir sitedeki bağlantıları veya kullanıcı arayüzü öğelerini tıklamaları için kandırıldığı kötü amaçlı bir saldırıdır. Bu genellikle, güvenilir sitenin bir kısmının veya tamamının <iframe> kullanılarak kötü amaçlı siteye yerleştirilmesiyle yapılır.

Content-Security-Policy (CSP) başlığındaki X-Frame-Options (XFO) üst bilgisi ve frame-ancestors yönergesi, bir sitenin <iframe> içine nasıl yerleştirilebileceğini kontrol ederek tıklama tuşuyla saldırıları azaltabilir.

Lighthouse denetimi neden başarısız olur?

XFO üstbilgisi SAMEORIGIN veya DENY ile ayarlanırsa ya da CSP üstbilgisinde frame-ancestors yönergesi ayarlanırsa denetim başarılı olur. Bu çerçeve denetimi politikalarından hiçbiri yapılandırılmamışsa denetim başarısız olur.

Tıklama tuzakçılığını azaltmak için CSP veya XFO yanıt başlığı bulunamadığına dair Lighthouse raporu uyarısı.
Tıklama tuşuyla saldırıyı azaltmak için CSP veya XFO yanıt başlığı bulunamadığına dair Lighthouse raporu uyarısı.

Tıklama tuzakçılığını azaltmak için çerçeve denetimi politikası ayarlama

İlk doküman isteğinin HTTP başlıklarında bir çerçeve kontrol politikası ayarlanmalıdır. X-Frame-Options başlığı ve Content-Security-Policy içindeki frame-ancestors yönergesi, <meta> öğesinde ayarlanırsa çalışmaz.

XFO başlığı

XFO başlığı için DENY veya SAMEORIGIN ayarlamak, tıklama tuşuyla saldırıları azaltır:

X-Frame-Options: SAMEORIGIN
X-Frame-Options: DENY

SAMEORIGIN yönü, sayfanın yalnızca tüm üst çerçeveler sayfayla aynı kaynağı paylaşıyorsa gösterilmesine izin verir. Buna karşılık DENY yönü, üst çerçeve kaynağından bağımsız olarak sayfanın bir çerçevede gösterilmesini engeller.

CSP başlığı

CSP başlığındaki frame-ancestors yönergesi, belirli bir sayfayı hangi sitelerin <frame>, <iframe>, <object> veya <embed> içine yerleştirebileceğini tanımlar. XFO'ya benzer şekilde, CSP frame-ancestors yönergesi self veya none olarak ayarlanarak tıklama tuşuyla saldırıları azaltmak için kullanılabilir:

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

Ancak frame-ancestors yönü, sayfayı yerleştirebilecek belirli üst kaynakları ayarlayabileceği için XFO'dan daha esnektir:

Content-Security-Policy: frame-ancestors 'self' https://example.com;

Kaynaklar