#javascript #dom
#javascript #dom
Вопрос:
Я хотел бы программно открыть новое окно (т.Е. Через window.open
) и Изменить содержимое без
- я становлюсь уязвимым для обратного ввода табуляции через ненулевое
window.opener
значение в дочернем окне - утечка потенциально конфиденциальных URL-адресов или параметров запроса через
Referer
заголовок
Использование noreferrer
функции (т. Е. window.open(url, target, "noreferrer")
) Казалось самым простым вариантом, но в соответствии со спецификацией (см. Шаг 15) это всегда приведет к возвращаемому значению null
.
Есть ли способ открыть новое окно без передачи Referer
заголовка, установить opener
значение null
и по-прежнему иметь ненулевую ссылку на открытое окно?
Комментарии:
1. искренне интересует 2 / работает ли политика реферера для
window.open
вызовов.
Ответ №1:
var otherWindow = window.open();
otherWindow.opener = null;
otherWindow.location = targetUrl;
Комментарии:
1.
opener
доступно даже в окнах с разными источниками: html.spec.whatwg.org/multipage/… Так что вы даже можете сделатьvar otherWindow = window.open(targetUrl); otherWindow.opener = null;
2. На самом деле это не работает, потому что, как указано, я также хочу избежать отправки
Referer
заголовка. Когда вы устанавливаете местоположение в окне,Referer
заголовок будет отправлен с URL родительского окна.3. @MichaelWu не уверен, есть ли решение