IT-Russia Технологии, разработки, обзоры
Безопасность

Популярные сайты шпионят за пользователями

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

Скрипт не способен просмотреть всю историю посещений браузера, однако с его помощью можно узнать, был ли пользователь на конкретных сайтах. Список сайтов составляется под каждый ресурс отдельно.

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

Исследователи обнаружили скрипт-шпион на 46 популярных сайтах. В их числе — популярный порноресурс YouPorn, а также новостные, развлекательные и финансовые сайты. Владельцев YouPorn интересует, прежде всего, на какие другие порносайты заходят их посетители.

Как сообщается, скрипт не работает в браузерах Chrome и Safari, а также в последней версии Firefox. Пользователи Internet Explorer 8, чтобы избавиться от слежки, должны включить у себя режим Private Browsing.

История посещений как уязвимость

Браузеры хранят историю посещённых страниц и применяют разное оформление к ссылкам в зависимости от того, открывал ли их пользователь ранее. Посещённая ссылка получает псевдокласс :visited, непосещённая остаётся в состоянии :link. Каскадные таблицы стилей позволяют задавать для этих состояний отличающиеся цвета, фон, границы и другие визуальные свойства.

Злоумышленник может разместить на странице скрытый список ссылок на проверяемые ресурсы, а затем с помощью клиентского скрипта опросить вычисленные стили каждого элемента. Если стиль совпадает с заданным для :visited, браузер подтверждает факт посещения. Такой метод не даёт доступа к полному списку адресов из истории, но позволяет проверить наличие в ней конкретных URL.

Атака эксплуатирует фундаментальную особенность браузерного движка: возможность программно считывать визуальные параметры элемента после применения всех правил CSS. Защита сводится либо к отказу от раскрытия вычисленных стилей для псевдокласса :visited, либо к принудительному возврату значений, неотличимых от непосещённых ссылок. Браузеры, в которых скрипт не срабатывал, уже реализовали одно из таких ограничений на уровне движка.