Как правило, указывая ссылки на внешние ресурсы со своего сайта устанавливают target="_blank" для открытия ссылки в новой вкладке. Действительно, если открывать чужой сайт в той же вкладке, то не каждый пользователь сможет вернуться обратно побродив по другому сайту.
Опасность заключается в том, что страница перехода получает некий контроль при использовании JavaScript, а точнее свойства window.opener.location. Происходит переадресация (редирект) на любой произвольный адрес указанный в этом свойстве.
Чтобы проверить как это работает, можете щелкнуть на ссылку ниже, она откроется в новой вкладке. После её загрузки произойдет редирект этой страницы на главную страницу другого сайта: Контакт с природой.
Существует несколько вариантов как не допустить такого использования внешних ссылок. Необходимо сообщить браузеру о том, что открываемая страница не должна иметь доступа к родительской, находящейся в другой вкладке.
- Добавить в ссылку атрибут rel="noopener noreferrer". Здесь используются сразу два значения атрибута rel, потому что разные браузеры и различные сайты используют или одно, или другое значение.
- Использовать код JavaScript, который будет отправлять посетителя через промежуточную страницу:
<script> window.opener = null; </script>
- Открывать ссылки в новой вкладке через JavaScript:
var otherWindow = window.open(); otherWindow.opener = null; otherWindow.location = targetUrl;
СВами