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 ç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;