target="_blank"
özelliğini kullanarak başka bir sitedeki sayfaya bağlantı oluşturduğunuzda, sitenizi performans ve güvenlik sorunlarına maruz bırakabilirsiniz:
- Diğer sayfa, sayfanızla aynı işlem üzerinde çalışabilir. Diğer sayfada çok fazla JavaScript çalışıyorsa sayfanızın performansı düşebilir.
- Diğer sayfa,
window.opener
mülküylewindow
nesnenize erişebilir. Bu durum, diğer sayfanın sayfanızı kötü amaçlı bir URL'ye yönlendirmesine izin verebilir.
target="_blank"
bağlantılarınıza rel="noopener"
veya rel="noreferrer"
eklemek bu sorunları önler.
Lighthouse çapraz kaynak hedef denetimi nasıl başarısız olur?
Lighthouse, kaynaklar arası hedeflere güvenli olmayan bağlantıları işaretler:
![Kaynaklar arası hedeflere güvenli olmayan bağlantıları gösteren Lighthouse denetimi](https://developer.chrome.com/static/docs/lighthouse/best-practices/external-anchors-use-rel-noopener/image/lighthouse-audit-showing-b1f47b11d85bc.png?authuser=5&hl=tr)
Lighthouse, bağlantıları güvenli olmayan site olarak tanımlamak için aşağıdaki süreci kullanır:
target="_blank"
özelliğini içeren tüm<a>
etiketlerini toplayın ancakrel="noopener"
veyarel="noreferrer"
özelliklerini değil.- Aynı barındırıcı bağlantılarını filtreleyin.
Lighthouse aynı ana makine bağlantılarını filtrelediğinden, büyük bir site üzerinde çalışırken dikkate almanız gereken bir uç durum vardır:
Bir sayfa, rel="noopener"
kullanmadan sitenizdeki başka bir sayfaya target="_blank"
bağlantısı içeriyorsa bu denetimin performans sonuçları yine geçerli olur.
Ancak bu bağlantıları Lighthouse sonuçlarınızda görmezsiniz.
Sitenizin performansını iyileştirme ve güvenlik açıklarını önleme
Lighthouse raporunuzda tanımlanan her bağlantıya rel="noopener"
veya rel="noreferrer"
ekleyin.
Genel olarak, target="_blank"
kullanırken her zaman rel="noopener"
veya rel="noreferrer"
ekleyin:
<a href="https://examplepetstore.com" target="_blank" rel="noopener">
Example Pet Store
</a>
rel="noopener"
, yeni sayfanınwindow.opener
özelliğine erişmesini engeller ve ayrı bir işlemde çalışmasını sağlar.rel="noreferrer"
de aynı etkiye sahiptir, ancakReferer
üst bilgisinin yeni sayfaya gönderilmesini de engeller. Bağlantı türü "noreferrer" bölümüne bakın.
Daha fazla bilgi için Çapraz kaynak kaynakları güvenli bir şekilde paylaşma başlıklı makaleye bakın.