Я вижу, как люди рекомендуют, чтобы каждый раз, когда кто-то использует target="_blank"
ссылку, чтобы открыть ее в другом окне, они должны помещать rel="noopener noreferrer"
. Интересно, как это мешает мне, например, использовать Инструменты разработчика в Chrome и удалить атрибут rel. Затем щелкнув ссылку ...
Это простой способ сохранить уязвимость?
noopener
по крайней мере, но, как указано ниже,noreferrer
избыточен): hacks.mozilla.org/2020/07/firefox-79Ответы:
Вы можете неправильно понять уязвимость. Вы можете прочитать об этом здесь: https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/
По существу, добавление
rel="noopener noreferrer"
к ссылкам защищает пользователь вашего сайта против того , чтобы сайта вы связаны с потенциально угоном браузера (через изгой JS).Вы спрашиваете об удалении этого атрибута с помощью инструментов разработчика - это потенциально может подвергнуть вас (человека, изменяющего атрибут) уязвимости.
источник
noopener noreferrer
является избыточным, посколькуnoreferrer
включает в себя функцииnoopener
. html.spec.whatwg.org/multipage/links.html#link-type-noreferrerСсылки с
target="_blank"
на них уязвимы к тому, что страница реферера будет заменена в фоновом режиме, в то время как внимание пользователя отвлекается на вновь открытой вкладке. Это известно как обратная табуляция :Ссылающаяся страница хранится на
window.opener
, и вредоносный сайт может изменить это посредством:if (window.opener) { window.opener.location = "https://phish.example.com"; }
Добавление
rel="noopener noreferrer"
исправляет эту уязвимость во всех основных браузерах.Обратите внимание, что теоретически вы можете удалить
rel
клиентскую часть с помощью манипуляций ... но зачем вам это нужно? Все, что вы делаете, - это сознательно становитесь уязвимыми для атаки.Другие пользователи, которые посещают тот же веб-сайт (и не изменяют свой собственный код на стороне клиента), по-прежнему будут в безопасности, поскольку сервер по-прежнему будет обслуживать файлы
rel="noopener noreferrer"
. Ваше удаление относится только к вам.источник
Тег привязки
rel=”noopener”
илиrel=”noreferrer”
атрибуты улучшают безопасность веб-сайта, но некоторые люди хотят игнорировать их, потому что думают, что они повлияют на поисковую оптимизацию их веб-сайта, но это всего лишь миф. Он защищает конфиденциальность аудитории вашего веб-сайта и предотвращает распространение вредоносного кода с внешнего веб-сайта.источник
noreferrer
части.Если консоль разработчика показывает предупреждение относительно
noopener noreferrer
, убедитесь, что вы добавили обаnoopener
иnoreferrer
в rel. ссылка должна быть примерно такой:<a href="www.google.com" target="_blank" rel="noopener noreferrer" />
источник