Браузер Google Chrome по умолчанию не будет поддерживать JavaScript-редирект при открытии ссылок в новой вкладке. Обновление безопасности затронет все приложения на базе движка Chromium.
Проблема редиректа
Любой URL на сайте открывается в уже активной вкладке. Если веб-разработчик хочет изменить это поведение и после клика перенаправлять пользователя на новую вкладку, необходимо указать атрибут target=«blank». Это удобно для посетителя, потому что сохранит состояние страницы вне зависимости от перехода по внутренним ссылкам, что критично, к примеру, для форм регистрации.
Но атрибут, указывающий браузеру на необходимость открыть новую вкладку, несет угрозу безопасности – в момент редиректа злоумышленник может использовать JavaScript-код для подмены адреса и перенаправления пользователя на вредоносную страницу.
Безопасно по умолчанию
Чтобы защитить посетителя от такого поведения браузера, в Chromium ранее был добавлен атрибут rel=«noopener», который запрещает исполнять любой JavaScript-код во время открытия новой вкладки. Но до недавнего времени его нужно было вручную прописывать для каждой ссылки – в противном случае она работала по-старому и позволяла подменять адрес конечной страницы.
После выпуска Google Chrome 88 эта проблема будет решена. Теперь атрибут rel=«noopener» будет по умолчанию работать при указании target=«blank», то есть вводить его больше нет необходимости. Также появится новый атрибут rel=«opener», который позволяет вернуть ссылке возможность исполнять JavaScript-код при редиректе.
Изменение внесено в Chromium, поэтому обновленное поведение ссылок с target=«blank» будет применено ко всем браузерам на его базе: Microsoft Edge, Google Chrome, Brave и другим. Эту информацию уже подтвердил разработчик Microsoft Edge Эрик Лоуренс, который и добавил новую функцию в движок.
В стабильной версии Google Chrome 88 появление встроенной поддержки rel=«noopener» ожидается в январе 2021 года.
Другие успели раньше
Браузер Apple Safari решил проблему открытия ссылок в новых вкладках еще в 2018 году. В приложение добавлена функция, при активации которой любой URL с target=«blank» ведет себя так, будто для него указан атрибут rel=«nooopener», даже если он не прописан разработчиком сайта в HTML-коде. Аналогичная возможность в том же 2018 году появилась и в браузере Mozilla Firefox.