Linki do innych domen są niebezpieczne

Gdy połączysz się ze stroną w innej witrynie za pomocą atrybutu target="_blank", możesz narazić swoją witrynę na problemy z wydajnością i bezpieczeństwem:

  • Inna strona może działać w tym samym procesie co Twoja strona. Jeśli na drugiej stronie działa dużo kodu JavaScript, może to negatywnie wpłynąć na wydajność Twojej strony.
  • Druga strona może uzyskać dostęp do obiektu window z właściwością window.opener. Może to umożliwić przekierowanie Twojej strony na szkodliwy adres URL.

Dodanie do linków target="_blank" atrybutów rel="noopener" lub rel="noreferrer" pozwala uniknąć tych problemów.

Przyczyny niepowodzenia audytu Lighthouse dotyczącego miejsca docelowego z innej domeny

Lighthouse oznacza niebezpieczne linki do innych domen:

Audyt Lighthouse, który pokazuje niebezpieczne linki do innych domen.

Aby określić, czy linki są niebezpieczne, Lighthouse stosuje ten proces:

  1. Zbierz wszystkie tagi <a>, które zawierają atrybut target="_blank", ale nie zawierają atrybutów rel="noopener" ani rel="noreferrer".
  2. Odfiltruj wszystkie linki do tego samego hosta.

Lighthouse odfiltrowuje linki do tej samej domeny, więc w przypadku dużych witryn może wystąpić sytuacja, na którą warto zwrócić uwagę. Jeśli jedna strona zawiera target="_blank"link do innej strony w Twojej witrynie bez użyciarel="noopener", nadal obowiązują konsekwencje tego audytu dla skuteczności. Nie zobaczysz jednak tych linków w wynikach Lighthouse.

Zwiększanie wydajności witryny i zapobieganie lukom w zabezpieczeniach

Dodaj rel="noopener" lub rel="noreferrer" do każdego linku zidentyfikowanego w raporcie Lighthouse. Gdy używasz target="_blank", zawsze dodawaj rel="noopener" lub rel="noreferrer":

<a href="https://examplepetstore.com" target="_blank" rel="noopener">
  Example Pet Store
</a>
  • rel="noopener" uniemożliwia nowej stronie dostęp do właściwości window.opener i zapewnia, że działa ona w osobnym procesie.
  • rel="noreferrer" działa tak samo i zapobiega też wysyłaniu nagłówka Referer na nową stronę.

Więcej informacji znajdziesz w artykule Bezpieczne udostępnianie zasobów z różnych domen.

Zasoby