1. Ссылки
Партнерские ссылки ссылаются друг на друга, размещая ссылки на сайты друг друга на своих сайтах. Необходимо иметь возможность находить адрес веб-сайта и название веб-сайта в коде веб-страницы, а также отображать имя веб-сайта при просмотре веб-страницы, чтобы пользователи могли найти свой собственный веб-сайт из совместных веб-сайтов и достичь цели взаимного продвижения.
Обычно используются дружеские ссылки.a
Ссылка реализована и размещена внизу портала.
<a href="https://www.xxx.com/" target="_blank">xxx网站</a>
2. Где нож
Связь дружбы пронзает вас ножом, где этот нож? ножwindow.opener
!
window.opener
Что тогда? Знакомство с примером.
Например, на странице от А доa
Ссылка открывает страницу B, на странице B вы можетеwindow.opener
Доступ к объекту окна страницы A.
3. Как тыкать
Например, на странице Б:
-
воплощать в жизнь
window.opener.location.href='https://www.xxx.com/'
, открыть страницу, точно такую же, как страница А на странице А, и побудить пользователя выполнить небезопасные операции, такие как ввод пароля; -
воплощать в жизнь
window.opener.document.getElementsByTagName('body')[0].innerHTML= '捅你一刀没商量';
Измените содержимое на странице А;
И так о вредоносных операциях, которые можно сделать через оконный объект.
В-четвертых, как предотвратить
Датьa
тег плюсrel = "noopener"
,Например
<a href="https://www.xxx.com/" rel = "noopener" target="_blank">
xxx网站
</a>
rel=noopener
Поддерживает chrome49 и opera36, но не поддерживает Firefox, поэтому его необходимо добавить для совместимости.rel=noreferrer
.
<a href="https://www.xxx.com/" rel = "noopener noreferrer" target="_blank">
xxx网站
</a>
5. Расширение
Что если вы используете js для открытия внешних ссылок?
function openUrl(url) {
let open = window.open();
open.opener = null;
open.location= url;
}
Является ли браузер несовместимым с вышеуказанным подходом?
function openUrl(url) {
let a = document.createElement('a');
a.rel = 'noopener noreferrer';
a.target = "_blank";
a.href = url;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}