Link mit target = "_ blank" und rel = "noopener noreferrer" immer noch anfällig?

96

Ich sehe Leute, die empfehlen, wann immer man target="_blank"einen Link verwendet, um ihn in einem anderen Fenster zu öffnen, sie setzen sollten rel="noopener noreferrer". Ich frage mich, wie dies mich daran hindert, beispielsweise Entwicklertools in Chrome zu verwenden und das rel-Attribut zu entfernen. Dann klicken Sie auf den Link ...

Ist das eine einfache Möglichkeit, die Sicherheitsanfälligkeit beizubehalten?

Miro J.
quelle
Welche Art von Schutz würde er Ihrer Meinung nach gewähren (oder in diesem Fall nicht)?
Ich habe über Browsererweiterungen nachgedacht, die das DOM manipulieren können.
Miro J.
1
Firefox 79 wird dies automatisch tun ( noopenerzumindest, aber wie unten ausgeführt, noreferrerist es selten): hacks.mozilla.org/2020/07/firefox-79
Kev

Antworten:

116

Möglicherweise verstehen Sie die Sicherheitsanfälligkeit falsch. Sie können hier mehr darüber lesen: https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/

Das Hinzufügen rel="noopener noreferrer"von Links schützt die Benutzer Ihrer Website im Wesentlichen davor, dass die von Ihnen verknüpfte Website möglicherweise den Browser entführt (über Rogue JS).

Sie möchten dieses Attribut über die Entwicklertools entfernen. Dies würde Sie (die Person, die das Attribut manipuliert) möglicherweise nur der Sicherheitsanfälligkeit aussetzen .

Jon Uleis
quelle
8
noopener noreferrerist redundant, da noreferrerdie Funktionalität von enthält noopener. html.spec.whatwg.org/multipage/links.html#link-type-noreferrer
mfluehr
1
Wenn es redundant ist, warum benötigt Visual Studio Code beides?
Muhe
57

Links mit target="_blank"ihnen können dazu führen , dass die Referrer-Seite im Hintergrund ausgetauscht wird, während die Aufmerksamkeit des Benutzers durch die neu geöffnete Registerkarte abgelenkt wird. Dies wird als umgekehrtes Tabnapping bezeichnet :

Beispiel für einen böswilligen Datenfluss

Die verweisende Seite wird in gespeichert window.opener, und eine schädliche Website kann dies ändern durch:

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

Durch das Hinzufügen wird rel="noopener noreferrer"diese Sicherheitsanfälligkeit in allen gängigen Browsern behoben.

Beachten Sie, dass Sie die rel Clientseite theoretisch durch Manipulation entfernen könnten ... aber warum sollten Sie das wollen? Alles, was Sie tun, ist, sich absichtlich für den Angriff anfällig zu machen.

Andere Benutzer, die dieselbe Website besuchen (und ihren eigenen clientseitigen Code nicht ändern), sind weiterhin sicher, da der Server weiterhin die Website bereitstellt rel="noopener noreferrer". Ihre Entfernung gilt nur für Sie.

Obsidianzeitalter
quelle
3

Das Ankertag rel=”noopener”oder die rel=”noreferrer”Attribute verbessern die Website-Sicherheit, aber einige Leute möchten sie ignorieren, weil sie glauben, dass sie die Optimierung ihrer Website-Suchmaschine beeinflussen werden, aber das ist nur ein Mythos. Es schützt die Vertraulichkeit Ihrer Website-Zielgruppe und verhindert, dass externe Websites schädlichen Code verbreiten.

Kowsigan Atsayam
quelle
5
Es wäre schön, wenn Sie eine Quelle für die "Mythos" -Aussage zitieren könnten. Besonders für den noreferrerTeil.
Miro J.
0

Wenn die Entwicklerkonsole eine Warnung bezüglich anzeigt noopener noreferrer, stellen Sie sicher, dass Sie beide noopenerund noreferrerin rel hinzufügen . Der Link sollte wie folgt aussehen:

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