Link met target=“_blank” en rel=“noopener noreferrer” nog steeds kwetsbaar?

Ik zie mensen aanbevelen dat wanneer men target="_blank"gebruikt in een link om deze in een ander venster te openen, ze rel="noopener noreferrer"moeten plaatsen . Ik vraag me af hoe dit me verhindert om bijvoorbeeld Developer Tools in Chrome te gebruiken en het rel-attribuut te verwijderen. Klik vervolgens op de link…

Is dat een gemakkelijke manier om de kwetsbaarheid nog steeds te behouden?


Antwoord 1, autoriteit 100%

Misschien begrijp je de kwetsbaarheid niet goed. Je kunt er hier meer over lezen: https: //www.jitbit.com/alexblog/256-targetblank—the-most-underestimated-vulnerability-ever/

In wezen beschermt het toevoegen van rel="noopener noreferrer"de gebruikers van uw site tegen het feit dat de site waarnaar u heeft gelinktmogelijk de browser kapt (via malafide JS) .

U vraagt naar het verwijderen van dat kenmerk via Developer Tools – dat zou alleen maar mogelijk u(de persoon die met het kenmerk knoeit) blootstellen aan de kwetsbaarheid.


Antwoord 2, autoriteit 51%

Links met target="_blank"erop zijn kwetsbaarvoor het verwisselen van de verwijzende pagina op de achtergrond terwijl de aandacht van de gebruiker wordt afgeleid door het nieuw geopende tabblad. Dit staat bekend als omgekeerd tabnapping:

De verwijzende pagina wordt opgeslagen in window.opener, en een kwaadwillende site zou dit kunnen wijzigen via:

if (window.opener) {
   window.opener.location = "https://phish.example.com";
}

Voeg rel="noopener noreferrer"Fixeert deze kwetsbaarheid in alle belangrijke browsers.

Merk op dat u theoretisch de relclient-side door manipulatie kunt verwijderen … maar waarom zou u willen? Het enige dat u aan het doen bent, is opzettelijk kwetsbaar maken voor de aanval.

Andere gebruikers die dezelfde website bezoeken (en wijzigen hun eigen client-zijcode niet) zouden nog steeds veilig zijn, omdat de server nog steeds de rel="noopener noreferrer"zou bedienen. Uw verwijdering ervan is alleen van toepassing op u.


Antwoord 3, Autoriteit 8%

Wat betreft de Lighthouse Best Practices Audits Rapport:

Toevoegen rel="noopener"of rel="noreferrer"naar externe links naar
de prestaties verbeteren en beveiligingskwetsbaarheden voorkomen.

In het algemeen, wanneer u target="_blank"gebruikt, altijd u rel="noopener"of rel="noreferrer":

Bijvoorbeeld:

<a href="https://www.kaiostech.com/store/" target="_blank" rel="noreferrer">
  KaiStore
</a>
  • rel="noopener"voorkomt dat de nieuwe pagina toegang krijgt tot de eigenschap window.openeren zorgt ervoor dat deze in een afzonderlijk proces wordt uitgevoerd.
  • rel="noreferrer"heeft hetzelfde effect, maar voorkomt ook dat de kop Referernaar de nieuwe pagina wordt verzonden.

Zie het officiële documentvoor meer informatie informatie.


Antwoord 4, autoriteit 6%

Browsers opgelost

Alle belangrijke browsers hebben dit probleem opgelost door het standaardgedrag bij te werken om veilig te zijn zonder de eigenschap relop te geven. Lees meer in Over rel=noopener.


Antwoord 5, autoriteit 2%

De ankertag rel=”noopener”of rel=”noreferrer”-kenmerken verbeteren de beveiliging van de website, maar sommige mensen willen ze negeren omdat ze denken dat ze van invloed zijn hun website zoekmachine optimalisatie, maar dat is slechts een mythe.
Het beschermt de vertrouwelijkheid van uw websitepubliek en voorkomt dat externe websites worden verspreid door schadelijke code te verspreiden.


Antwoord 6, autoriteit 2%

Er is geen antwoord op een case wijzen wanneer u daadwerkelijk een referentier wilt doorgeven, gewoon het “beveiligingsrisico” waarschuwt: bijvoorbeeld wanneer u uw eigen externe website koppelt (die uiteraard nee heeft Beschreven beveiligingskwetsbaarheden) en u wilt dat de verwijzer header om welke reden dan ook wordt doorgegeven.

In mijn geval, in het geval van gegevensanalyse, wil ik zien hoeveel van mijn bezoekers documenten lezen door op Links in de web-app te klikken en hoeveel ze zijn afkomstig van zoekmachines, en daarom wil ik de koptekst van de referentiemotoren afrekenen onderscheiden van deze gebruikersgroepen.

Ik kwam hier na Googling voor wat info voordat ik reageren / JSX-no-target-blank eSlint waarschuwing inline. Hier leest u hoe u het kunt doen bij het koppelen van websites zoals uw eigen documenten die zeker veilig zijn:

{/* Safe link to the own website *//* eslint-disable-next-line react/jsx-no-target-blank */}
<a href="https://my-own-website.com" target="_blank">
  Learn more
</a>

Antwoord 7

Als de ontwikkelaarconsole waarschuwing toont met betrekking tot noopener noreferrer, zorg er dan voor dat u zowel noopeneren noreferrerin rel. link moet zoiets zijn als hieronder:

<a href="www.google.com" target="_blank" rel="noopener noreferrer" />

Other episodes