Nie używaj atrybutu link Target=”_Blank” w takich przypadkach

Uzyskaj przejrzysty przegląd atrybutu _blank link i dowiedz się, jak prawidłowo go wykonać, aby ograniczyć ryzyko związane z bezpieczeństwem witryny i wydajnością. Użycie atrybutu _blank link spowoduje otwarcie łącza w nowym oknie lub nowej karcie przeglądarki.

Ale to nie jest tak proste, jak się wydaje. Okazuje się, że nie tylko atrybut linku _blank stanowi zagrożenie dla bezpieczeństwa, ale istnieje również wiele sytuacji, w których zalecane jest użycie czegoś innego niż _blank. Z tego artykułu dowiesz się, kiedy używanie atrybutu _blank nie jest dobrym pomysłem.

 

Co to jest atrybut _Blank Link?

Atrybut _blank link informuje przeglądarkę, aby otworzyła link w nowej karcie. Możesz mieć wiele linków używających atrybutu _blank link, a każdy inny link z tym atrybutem _blank po kliknięciu spowoduje wyświetlenie zupełnie nowej karty przeglądarki. Co więcej, jeśli użytkownik wielokrotnie kliknie ten sam link, przeglądarka będzie odradzać coraz więcej kart.

 

Czy atrybut _Blank jest nieetyczny?

Niektórzy uważają, że najlepiej dać użytkownikowi możliwość otwarcia nowej karty przeglądarki. Niektórzy twierdzą, że „uwięzienie” użytkownika w witrynie przez otwieranie linków w nowym oknie przeglądarki i otwieranie własnej strony internetowej jest nieetyczne. Problem z tym punktem widzenia polega na tym, że prawdopodobnie większość ludzi nie wie, że ma możliwość otwarcia nowego okna przeglądarki.

Każda publiczność witryny jest technicznie biegła na różnych poziomach. Ale prawdopodobnie można bezpiecznie powiedzieć, że wiele osób nadal nie wie, że mogą kliknąć prawym przyciskiem myszy (lub długo kliknąć urządzenie mobilne) i otworzyć nową kartę przeglądarki. Tak więc danie użytkownikom „wyboru” tak naprawdę nie jest wyborem.

Po prostu idą tam, gdzie ich wyślesz. „Etyczny” wybór jednej osoby, aby otworzyć łącze w tej samej przeglądarce internetowej, może zmylić odwiedzającego witrynę, jeśli spróbuje wrócić do oryginalnej strony internetowej, zamykając kartę przeglądarki, w której aktualnie się znajduje. Kwestia etyki została dziś w dużej mierze odłożona na bok. Wybór, czy użyć atrybutu _blank link, czy nie, jest wyborem osobistym i biznesowym.

 

Istnieje powód bezpieczeństwa, aby nie używać _Blank

Atrybut link target=”_blank” jest ryzykowny i otwiera witrynę na problemy z bezpieczeństwem i wydajnością. Strona Google Web.dev dotycząca zagrożeń związanych z używaniem atrybutu _blank link jest podsumowana w następujący sposób:

„Druga strona może działać w tym samym procesie, co Twoja strona. Jeśli na drugiej stronie jest dużo kodu JavaScript, może ucierpieć wydajność Twojej strony.

Druga strona może uzyskać dostęp do twojego obiektu window za pomocą właściwości window.opener. Może to pozwolić drugiej stronie na przekierowanie Twojej strony na złośliwy adres URL”.

reklama

Drzwi antywłamaniowe: e-gerda.pl – sprawdź online.
szymanski
Specjalista SEO szymanski.biz.pl

Rozwiązanie?

Użyj atrybutów linku rel=”noopener” lub rel=”noreferrer” dla każdego linku.

  • Atrybut linku rel= ” noopener” uniemożliwia stronie, do której prowadzi link, uzyskanie dostępu do oryginalnej strony internetowej, do której prowadzi link. Zapobiega to przejmowaniu kontroli przez linkowaną stronę lub wpływaniu na nią w inny sposób.
  • Atrybut linku rel= ” noreferrer” ukrywa informacje o stronie odsyłającej z witryny, do której prowadzi link. Kiedy odwiedzający witrynę kliknie link rel=”noreferrer”, witryna, do której prowadzi łącze, nie będzie wiedziała, do której witryny skierował użytkownika.

Atrybut linku rel=”noreferrer” również działa tak samo jak atrybut linku „noopener”, ponieważ zapobiega przejęciu kontroli nad stroną, do której prowadzi link, do której prowadzi link. Tak więc, jeśli chcesz wysyłać informacje o stronie odsyłającej, jednocześnie chroniąc się przed problemami bezpieczeństwa atrybutu _blank link, użyj atrybutu linku „noopener”. Jeśli wolisz zachować prywatność i nie przekazywać informacji o stronie polecającej, jednocześnie chroniąc się przed problemami bezpieczeństwa związanymi z używaniem atrybutu linku _blank, użyj atrybutu linku rel=”noreferrer”.

 

Względy bezpieczeństwa danych w przypadku wrażliwych stron

Istnieją określone sytuacje związane z bezpieczeństwem, w których wydawca może nie chcieć, aby użytkownik tworzył wiele stron internetowych. Jednym z takich przypadków jest strona internetowa, która zajmuje się poufnymi informacjami o klientach. Jeśli witryna związana ze zdrowiem lub finansami używa _blank do linków do prywatnych informacji, może to spowodować, że odwiedzający witrynę wyświetli wiele stron internetowych zawierających poufne informacje.

Mogą nieświadomie pozostawić te okna nieumyślnie otwarte. Na przykład mogą zamknąć okno główne i inne okno i nie zdawać sobie sprawy, że na karcie przeglądarki w tle może być nadal otwarte trzecie okno z wysoce poufnymi informacjami. W takim przypadku wydawca witryny może wybrać inny atrybut linku, taki jak „pusty” (z podkreśleniem _). Atrybut „pusty” link otworzy link na nowej karcie przeglądarki. Jednak w przeciwieństwie do atrybutu _blank link, wszystkie inne linki na oryginalnej stronie internetowej również otwierają linkowaną stronę na tej samej karcie, co pierwszy kliknięty link.

Tak więc, jeśli masz pięć linków na stronie, które używają atrybutu „pusty” link, a użytkownik kliknie pierwszy link, każdy z pozostałych czterech linków po kliknięciu otworzy strony internetowe na tej samej karcie przeglądarki, co pierwszy kliknięty link.

Alternatywnie do _Pustego atrybutu

Nawiasem mówiąc, nie musisz używać _blank. Możesz użyć innego słowa. Różnica między użyciem _blank a dowolnym innym słowem polega na tym, że użycie innego słowa ograniczy każdy link na tej stronie do otwierania w tej samej nowej karcie przeglądarki.

Na przykład, jeśli zakodujesz link w ten sposób:

<a href=”https://www.example.com/” target=”_SEJ” rel=”noreferrer”>

Powyższy link otworzy się w zupełnie nowej karcie przeglądarki.

Teraz, jeśli masz dwa linki z tym samym atrybutem link:

<a href=”https://www.example.com/” target=”_SEJ” rel=”noreferrer”>

<a href=”https://www.example.net/” target=”_SEJ” rel=”noreferrer”>

Jeśli odwiedzający witrynę kliknie pierwszy link, otworzy się nowa karta przeglądarki.

Jeśli odwiedzający witrynę kliknie drugi link, otworzy go w tej samej karcie przeglądarki, co pierwszy kliknięty link, zasadniczo ponownie korzystając z tej samej karty przeglądarki.

 

Możesz nie chcieć używać _Blank dla ramek wbudowanych

Może się zdarzyć, że wydawca będzie musiał użyć czegoś innego niż atrybut _blank. Jeden z takich przypadków dotyczy ramek wbudowanych. Ramka wbudowana to element HTML, który może zawierać w sobie inny dokument internetowy. Na przykład niektóre reklamy są zawarte w ramce iframe, dzięki czemu stają się stroną internetową na stronie internetowej. Wbudowana ramka jest kodowana za pomocą elementu iframe (nazywanego również tagiem iframe).

Ponieważ element iframe jest zasadniczo stroną internetową osadzoną na innej stronie internetowej, specyfikacje HTML zawierają atrybuty linków specyficzne dla elementów iframe, które powodują, że linki osadzone w elementach iframe zachowują się w określony sposób. Nadal można użyć pola _blank w ramce iframe, aby wyświetlić stronę internetową w nowej karcie przeglądarki. Ale nie jest to zalecane, jeśli chcesz mieć określone zachowanie dla elementu iframe.

Do wyboru są trzy atrybuty linku specyficzne dla elementu iframe:

  • _parent: otworzy link poza elementem iframe (jak również na tej samej stronie internetowej).
  • _self: otworzy link w tym samym iframe (lub tej samej stronie internetowej), ale tylko wtedy, gdy link znajduje się w tej samej domenie. Nie zadziała, jeśli link prowadzi do innej domeny.
  • _top: otworzy się poza elementem iframe (jak również na tej samej stronie internetowej).

_Atrybuty pustego łącza

Jeśli chodzi o atrybut linku _blank, prawdopodobnie można go uogólnić i po prostu używać, o ile masz dołączony atrybut linku noreferrer lub noopener. Mając to na uwadze, dobrze jest wiedzieć, że istnieją alternatywy. Ostatecznie użycie atrybutu _blank link jest tak proste i skomplikowane, jak chcesz i zależy od Twoich konkretnych potrzeb.