Мобильные приложения могут следить за посещаемыми веб-сайтами

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

https://habr.com/ru/articles/915732/

Хороший комментарий:

Ответ сложнее и интереснее, чем может показаться.

Во-первых, открывать голые TCP/UDP соединения браузер всё-таки не позволит (если только через расширения конкретного браузера).

Однако, http-запросы из JS куда угодно разрешены, НО! CORS не позволит прочитать ответ внутри JS, если в ответе нет явного заголовка Access-Control-Allow-Origin: XXX. Да, в wireshark очень чётко видны открывающиеся TCP-сессии, запросы от браузера и радостные ответы локальных сервисов. Тем не менее:

  • остаётся возможность атаки по стороннему каналу (например, замеряем время запроса к http://127.0.0.1:5432 — косвенно понимаем, работает Postgres у пользователя локально или нет);
  • банально, всё ещё можно отправить запросы вида PUT http://192.168.0.1/login?user=admin&pass... (зависит от API слушающих сервисов) — ответ нам вообще не важен, мы просто в лоб передаём в запросе нужную информацию слушающему сервису. Именно такой вектор обмена информацией рассматривается в статье.

Для меня лично стало неприятным сюрпризом, что

  • даже в современных браузерах есть возможность напрямую из песочницы обращаться к локальной сети и выполнять такой жирным пласт запросов (пусть и чаще всего односторонних);
  • и что CORS всего навсего блокирует ответы, но не запросы (что логично, но требует осознания).

ПРИМЕЧАНИЕ: на самом деле в данном случае, даже если бы CORS блокировал и сам запрос, приложению не составит труда как раз на своем локальном сервисе, разрешить ответ выставив "звездочку" или разрешив домен, с которого запрос прилетел

Key Words for FKN + antitotal forum (CS VSU):