Как стать автором
Обновить

Комментарии 25

Ответил, что "опасен", хотя на самом деле с опасностью не сталкивался, просто навигация в opener без моего участия бесит.

Так это классика: пользователь кликает по ссылке на нашем сайте, открываем вторую вкладку в которой грузим запрошенное, а в исходной, тем временем, открываем рекламу (а с помощью location.replace() ещё и сделаем невозможной попытку нажать кнопку «Назад», мвахаха). Пользователь на автомате закрывает новую вкладку и остаётся один на один с рекламой. Показ засчитан.

К сожалению, в Firefox обсуждение этой подлянки заглохло три года назад на этапе «пусть кто-нибудь внятно опишет, как с этим борется Chrome, чтобы мы могли порассуждать о том, как нам такое же реализовать».
Включить в один вариант ответа два не связанных фактора — это пять.
Это была шуточка, простите. Для чистоты опроса убрал подпись.
Я не знаю, что произошло в последнее время с Яндексом (возможно, это случилось за последний год), но у них очень сильно ухудшилась работа с безопасностью (и с Bug Bounty): скорость ответов упала почти до нуля, скорость обработки новых уязвимостей, вероятно, тоже (оцениваю исходя из скорости отправки ответа о дубликате), приватность больше особо не нужна. При этом брендировать левые сервисы, а при нахождении в них дыр говорить «Не, это партнеры, ничего не заплатим» — это святое. Ну и что, что там логотипы и домены Яндекса. И качество «зачистки» систем от уже засунутых векторов после исправления уязвимости хромает.
У носорога очень плохое зрение. Но при его массе, это не его проблема.
Слежка за пользователями — это их хлеб.

Яндекс, по старой памяти, и не против быть на высоте, но коммерческие вопросы перебивают это похвальное движение. Слежка за пользователями, в которой Я столь часто подозревали, даёт, очевидно, выхлопа больше, чем затыкание возможности для слежки своими же руками.
Тут, конечно, можно спорить про теории заговора, но небезызвестный домен в Я-зоне, набитый самыми разными техниками для отслеживания юзера, даже если тот меняет браузер или как-то ещё пытается показаться "другим посетителем", существует который год, и это, увы, наводит… При этом же нет даже тени сомнения в комментариях о том, что Я-сервисы (те же такси) ведут себя по разному для разных юзеров (что как бы не сильно законно, но отлично объясняется идеей защиты от фрода), и изменения учитывают полный портрет юзера (не понравился роботу на одном сервисе — будешь особенным образом обрабатываться на всех остальных). Реклама, учитывающая произносимые рядом с телефоном слова, тоже многим бросилась в глаза, но — это же совпадение, как такое можно только утверждать, правда?
Это я к чему: вектор опасен для юзера, но "для большой компании на последнюю букву" может быть и наоборот.

Неплохо бы еще написать, что такое турбо-страницы.
Яндекс их так агрессивно продвигает, и я даже не думал, что кто-то о них не слышал. В двух словах — отдача страничек с урезанными возможностями html с серверов Яндекса, чтобы ускорить показ контента на мобильном. Монетизируется через вставку рекламных блоков. tech.yandex.ru/turbo
В Гугл писали? У них на поиске этот баг работает.
Кажется, что какое-то время у Гугла была позиция, что это не та угроза, с которой они будут бороться, так как «Единственный способ защиты от фишинга — проверка адреса текущей вкладки при вводе данных. Если пользователь не делает этого, то он неправ.»

Меня не отпускает сильное чувство что Яндекс превращается во что-то очень нехорошее. Я даже начинаю подозревать что у них там менеджмент с Почты России пришел "бизнесу учить". Хороший браузер стал тормозным и перегруженным всякого рода глючными функционалом. При любой установки софта на винду получи в довесок браузер, менеджер браузеров, алисо в панель и тормоза… не знаю как у остальных на андроидах а в последней версии от самсунгов из-за браузера с олисо постоянно падала облолчка домашнего

облолчка домашнего экрана. Некогда любимая мною компания теперь у меня в чёрном списке...

Браузеры на базе хромиума (в том числе, и Яндекс, и Опера, а теперь и Ёж) пресекают попытку доступа через границу фрейма — нельзя просто так взять и поковыряться в содержимом window.opener.


А вот фаерфокс — подвержен уязвимости.


Поскольку в мире дофига легаси сайтов, не уделивших внимание гигиене ссылок, то было бы проще кидаться тапками в сторону фаерфокса, чтобы те пофиксили раз и навсегда.

То есть как это пресекают? Я надеюсь вы не имели в виду попытку прочитать содержимое DOM для опенера.

А вот значение 'window.opener.location.href' в Хроме прекрасно меняется.

Упс! Читать нельзя, а писать можно...

Блин, звучит чертовски любопытно. Можно попросить вас показать небольшой кода, чтобы писать?
<html><body>
<script type="text/javascript">
    var op = window.opener;
    try {
        // здесь исходная вкладка будет перенаправлена
        op.location.href = 'https://ya.ru';
        // а здесь вылетит исключение
        document.write(op.location.href);
        // равно как и здесь, если бы мы сюда добрались
        op.document.write('PWNED!');
        // на фаерфоксе - доберёмся и не вылетим!
    } catch (e) {
        alert('Exception: ' + e);
    }
</script>
</body></html>

Опять же, работает только на ФФ. (Может быть, на до-хромиумном еже и ослике… не проверял, нет их под рукой).

А какой версии у вас FF?
У меня 67.0 и window.opener.document.write('PWNED!') триггерит ошибку безопасности:

SecurityError: Permission denied to access property "document" on cross-origin object

Просто возможность взять и повлиять на чужой DOM, дописав туда любой вредоносный JS, была бы настолько опасной, что FF лучше было бы похоронить в таком случае.

67.0 под макось. Только что проверил обновление.

Ещё вариант:
victim.html


<div id=victim>innocent</div>
<div><a href='violator.html' target='_blank'>take me!</a></div>

violator.html


<script>
window.opener.document.getElementById('victim').innerText = 'pwned!';
</script>
Кажется я понял, откуда доступ к DOM. У вас оба файла расположены в рамках одного домена («origin»)?
А если бы violator.htm расположен был бы на другом домене?

Ну то есть ссылка ведет на другой сайт, а там в консоли уже ввести window.opener.document.write('PWNED!')

Да, попробовал в консоли в другом домене, — там только доступ к location.href, и только на запись.
Значит, у хромиума паранойя более повышенная, раз он даже в одном домене бьёт по пальцам.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации