СТАТЬИ

New Bit workshop

Помощь пользователям

носимой электроники и гаджетов


ТЕКСТЫ

New Bit workshop

Рекламные статьи, статьи обзоров, бюро копирайтинга "Марька"

» » Cайт Kinogo следит за пользователями !
10:09
Cайт Kinogo следит за пользователями !
При входе на сайт Kinogo начал возникать баннер:



Мне стало интересно что это за расширение и решил просмотреть код.



Почему появилось расширение?



Информация от создателей (скриншот группы vk, ниже будет продублировано текстом, не портите зрение):





О расширении



Стоит отметить, что расширений существует несколько (не меньше 3-х). У разных пользователей могут возникать разные ссылки на расширения. Те расширения, что мне попались, содержали идентичный код. Поэтому остановлюсь на этом.

Название: Angry Racoon — уход от бана
Дата последнего обновления: 5 Мая 2015.
Версия: 1.0.3

Обзор кода расширения



Коротко опишу, только интересную цепочку:

1. Разбор любого расширения начинается с manifest.json

manifest.json


2. Из значения ключа «content_scripts» следует, что, кроме фреймворков, на КАЖДУЮ открытую пользователем страницу подключается файл process.js

process.js


3. В process.js с помощью функции require подключается файл «content.js»

content.js


4. В content.js интересен вызов функции messageDispatcher.sendToBackground из файла messaging.js

messaging.js


5. Данная функция является оберткой над Extensions API для удобного обмена сообщениями между фоновым скриптом и скриптами, вставленными на каждую страницу.

6. Итак, функция messageDispatcher.sendToBackground запрашивает у фонового скрипта url.

7. Поиск получения файла с кодом для отдачи url аналогичен пунктам выше, поэтому просто цепочка:

manifest.json ==(key "background.page")==> background.html
backround.html ==(script)==> demon.js
demon.js ==(require)==> backround.js
background.js ==(require)==> backgroundHandlers.js
backgroundHandlers.js ==(require)==> backgroundUtils.js


8. Рассмотрим backgroundUtils.js

backgroundUtils.js


9. Используя функцию getRequestUrl и файл с адресами proxy.js, расширение получает один из 4-х url (рандомно).

'http://outrageous.ru',
'http://thrilling.ru',
'http://frightened.ru',
'http://agitated.ru',

proxy.js


10. Итак, на запрос клиентского скрипта, фоновый возвращает один из 4-х url. Вернемся к клиентскому скрипту и функции sendToBackground (пункт 6). А данная функция добавляет к url реферера для страницы и вставляет скрипт на страницу по полученному url.

Самое интересное после прочтения кода — это подтверждение полученных умозаключений на практике:



А теперь соберем все воедино:

1. довольно популярный сайт просит установить расширение.
2. расширение вставляет на каждую страницу пользователя произвольный скрипт, который может делать все что угодно (упомяну словосочетания с прошлой статьи — онлайн-банкинг, пароли, сообщения, анонимность).
3. помимо скрипта идет явная отправка информации о пользователе: посещенные страницы, и рефереры для данных страниц.

Выводы делайте сами.

Комментариев: 1094 браузерные расширения, JavaScript 3
Войти через соцсети