Veo gente recomendando que cada vez que uno use target="_blank"
un enlace para abrirlo en una ventana diferente, deberían poner rel="noopener noreferrer"
. Me pregunto cómo me impide esto usar Herramientas de desarrollo en Chrome, por ejemplo, y eliminar el atributo rel. Luego haciendo clic en el enlace ...
¿Es esa una manera fácil de mantener la vulnerabilidad?
noopener
al menos, pero como se señala a continuación,noreferrer
es redundante): hacks.mozilla.org/2020/07/firefox-79Respuestas:
Puede estar malinterpretando la vulnerabilidad. Puede leer más sobre esto aquí: https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/
Esencialmente, agregar
rel="noopener noreferrer"
enlaces protege a los usuarios de su sitio contra que el sitio al que ha vinculado pueda secuestrar el navegador (a través de JS fraudulento).Está preguntando sobre la eliminación de ese atributo a través de las herramientas de desarrollo, lo que solo lo expondría potencialmente a usted (la persona que manipula el atributo) a la vulnerabilidad.
fuente
noopener noreferrer
es redundante, ya quenoreferrer
incluye la funcionalidad denoopener
. html.spec.whatwg.org/multipage/links.html#link-type-noreferrerLos enlaces con
target="_blank"
ellos son vulnerables a que la página de referencia se cambie en segundo plano mientras que la pestaña recién abierta desvía la atención del usuario. Esto se conoce como tabnapping inverso :La página de referencia está almacenada
window.opener
y un sitio malicioso podría modificar esto mediante:if (window.opener) { window.opener.location = "https://phish.example.com"; }
La adición
rel="noopener noreferrer"
corrige esta vulnerabilidad en todos los principales navegadores.Tenga en cuenta que, en teoría, podría eliminar el
rel
lado del cliente mediante la manipulación ... pero ¿por qué querría hacerlo? Todo lo que está haciendo es deliberadamente hacerse vulnerable al ataque.Otros usuarios que visiten el mismo sitio web (y no modifiquen su propio código del lado del cliente) aún estarían seguros, ya que el servidor aún serviría el
rel="noopener noreferrer"
. Su eliminación solo se aplica a usted.fuente
La etiqueta de anclaje
rel=”noopener”
o losrel=”noreferrer”
atributos mejoran la seguridad del sitio web, pero algunas personas quieren ignorarlos porque piensan que afectarán la optimización del motor de búsqueda de su sitio web, pero eso es solo un mito. Protege la confidencialidad de la audiencia de su sitio web y evita que un sitio web externo propague código malicioso.fuente
noreferrer
papel.Si la consola del desarrollador muestra una advertencia al respecto
noopener noreferrer
, asegúrese de agregar ambosnoopener
ynoreferrer
en rel. El enlace debería ser algo como el siguiente:<a href="www.google.com" target="_blank" rel="noopener noreferrer" />
fuente