Ссылка с target = "_ blank" и rel= "noopener noreferrer" по-прежнему уязвимы?
Я вижу людей, которые рекомендуют, чтобы всякий раз, когда кто-то использовал target = "blank" в ссылке, чтобы открыть ее в другом окне, она должна указывать rel= "noopener noreferrer". Интересно, как это мешает мне, например, использовать Инструменты разработчика в Chrome и удалять атрибут rel? Затем нажмите на ссылку...
Это простой способ сохранить уязвимость?
Ответы
Ответ 1
Возможно, вы неправильно понимаете уязвимость. Вы можете прочитать больше об этом здесь: https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/
По сути, добавление rel="noopener noreferrer"
к ссылкам защищает пользователей вашего сайта от того, что сайт, на который вы rel="noopener noreferrer"
потенциально может захватить браузер (через мошенническую JS).
Вы спрашиваете об удалении этого атрибута с помощью Инструментов разработчика - это потенциально может подвергнуть вас (человека, который вмешивается в этот атрибут) уязвимости.
Ответ 2
Ссылки с надписью target="_blank"
на них уязвимы для того, чтобы страница реферера была выгружена в фоновом режиме, а внимание пользователя отвлекается на вновь открывшейся вкладке. Это известно как обратная пометка:
Ссылочная страница хранится в window.opener
, и вредоносный сайт может изменить это с помощью:
if (window.opener) {
window.opener.location = "https://phish.example.com";
}
Добавление rel="noopener noreferrer"
исправляет эту уязвимость во всех основных браузерах.
Обратите внимание, что теоретически вы можете удалить клиентскую часть rel
с помощью манипуляций... но зачем вам это нужно? Все, что вы делаете, это сознательно делаете себя уязвимыми для атаки.
Другие пользователи, которые посещают тот же веб-сайт (и не изменяют свой собственный код на стороне клиента), все равно будут в безопасности, поскольку сервер все равно будет обслуживать rel="noopener noreferrer"
. Ваше удаление этого относится только к вам.
Ответ 3
Ссылки, открытые в новой вкладке с помощью target = "_ blank", по-прежнему уязвимы. Вы можете вызвать это событие также с помощью функции javacript windon.open(), поэтому убедитесь, что они также добавляют атрибуты noopener и noreferrer.
Самый простой способ проверить весь веб-сайт на наличие уязвимости этого типа - использовать онлайн-инструмент, такой как securityHTML.com для разметки html и securityJavaScript.com для кода javascript.
Ответ 4
Атрибут тега привязки rel= 'noopener' или rel= 'noreferrer' повышает безопасность веб-сайта, но некоторые люди хотят его игнорировать, поскольку считают, что это повлияет на их поисковую оптимизацию. Это просто миф.
Он защищает конфиденциальность аудитории вашего сайта и предотвращает внешний сайт путем распространения вредоносного кода.