CoderCastrov logo
CoderCastrov
Парсер

Как небольшое расширение для Chrome привлекло внимание крупного медиа-конгломерата (и не в лучшем виде)

Как небольшое расширение для Chrome привлекло внимание крупного медиа-конгломерата (и не в лучшем виде)
просмотров
8 мин чтение
#Парсер

Поднимите руку, если вы не знали, что популярный веб-сайт RateMyProfessors.com принадлежит одному из крупнейших медиа-конгломератов в мире.

🙋‍♂️

Именно с этого момента начинается наша история.

Katal

Была весна 2018 года, и я использовал Catalyst для регистрации на курсы. Catalyst - это информационная система студентов Университета Цинциннати, которую студенты используют для регистрации на курсы, получения студенческих займов и многого другого. Он также широко признан как студентами, так и преподавателями, немного сложным в использовании. Во время регистрации на курсы я обнаружил, что выполняю некоторые повторяющиеся задачи для каждого поиска, и вот почему я начал использовать Katal. Katal было расширение для Chrome и Firefox, которое должно было быть "инструментарием" для Catalyst.

Katal - это единица каталитической энергии, отсюда и название расширения. (И нет, я не настолько умный; когда я пытался придумать название, я просто изучал страницу Википедии о катализаторе, пока не увидел слово, которое звучало круто.)

План заключался в том, чтобы постоянно добавлять различные "инструменты", которые делали использование Catalyst более удобным. Первым из этих инструментов было добавление оценки RateMyProfessors.com преподавателя прямо рядом с его именем при поиске классов.

Когда студенты решают, какую секцию класса они хотят взять, они обычно задают себе два вопроса: "Как рано начинается занятие?" и "Преподаватель хороший?". Второй вопрос обычно отвечается, перейдя на RateMyProfessors.com; веб-сайт, который позволяет студентам оценивать и оставлять комментарии о своем опыте с преподавателями. Преподавателям присваивается агрегированная оценка от 1 до 5 на основе этих отзывов. Katal упрощал этот процесс, отображая оценку преподавателя (также с цветовым кодированием!) прямо рядом с его именем в Catalyst. Пользователи также могли нажать на оценку, чтобы перейти на страницу преподавателя и прочитать отзывы.

Вы можете найти исходный код для Katal на моем GitHub!

Viacom? Via-gone!

15 января я опубликовал расширение в Chrome Web Store и Firefox Add-ons. Я поделился им в Slack школьного клуба, и оно получило положительные отзывы, но загрузили его не более десяти раз. Поэтому я был удивлен, когда 17 января вечером получил электронное письмо:

**ОТ: **RMP Support <*******@**mtv.nanorep.in> **ТЕМА: **Несанкционированный парсинг данных сети Viacom Media **ТЕКСТ: **Здравствуйте, В приложении вы найдете переписку с RateMyProfessors.com. Спасибо, Поддержка Rate My Professors

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

Для тех, кто не знает, Viacom - это международный конгломерат средств массовой информации, в состав которого входят такие известные марки, как Nickelodeon, MTV, Comedy Central, BET, CMT, Paramount Pictures, и который сейчас сливается с CBS Corporation. Как оказалось, по какой-то причине с 2007 года по октябрь 2018 года Viacom владела сайтом RateMyProfessors.com под брендом MTVU.

К письму был приложен следующий файл Word:

В документе Viacom утверждает, что я собрал данные с веб-сайта RateMyProfessors.com и _даже _отображал оценки пользователей (как я посмел!), и эти действия нарушили условия использования RateMyProfessors.com. Затем они требуют, чтобы я удалил расширение Chrome и подтвердил письменно, что больше никогда не буду собирать данные RateMyProfessors, публично размещать их информацию или иным образом нарушать их Соглашение об использовании, и если я не выполню эти требования, они передадут это дело в свой юридический отдел.

Честно говоря, меня это напугало. Я последовал их указаниям, хотя не считаю, что у них было бы основание (см. следующий раздел), потому что я студент колледжа, и не стоило сражаться с Viacom (которая известна своей очень судебной активностью) из-за небольшого побочного проекта. Я выполнил их требования в тот же день, удалив расширение из Chrome и Firefox.

До сих пор остаются несколько вопросов, на которые нет ответа:

Как Viacom узнала об этом расширении всего через два дня после его публикации? Предполагаю, что Viacom использует программу, которая парсит интернет в поисках использования их товарных знаков, и мое расширение попало на глаза (как иронично!)

Как Viacom нашла мой школьный email? Жалоба была отправлена не на email, связанный с листингом в Chrome Web Store, а на мой школьный email. Я не очень понимаю, как они получили этот email. Я подумал, что, возможно, создал аккаунт на RateMyProfessors с этим email, и они нашли меня в системе, но я попытался сбросить пароль с этим email, и аккаунта не существовало. Страшно

Что такое парсинг веб-страниц и является ли он законным?

Существуют два способа, с помощью которых веб-сайт может получать данные с другого веб-сайта для своего использования. Для целей объяснения этих концепций я назову веб-сайт, который содержит нужные нам данные, Веб-сайт А, а веб-сайт, который собирает эти данные, Веб-сайт Б.

Интерфейс программирования приложений

Многие веб-сайты разрабатывают интерфейс программирования приложений (API), который позволяет третьей стороне получать доступ к их данным. Веб-сайт А предоставляет определенные методы для доступа к его данным таким образом, чтобы их мог понять машина, а не человек.

API обычно полезен как для веб-сайта А, так и для веб-сайта Б. Веб-сайт А может контролировать, какие разработчики могут использовать API, и ограничивать доступ или устанавливать ограничение на скорость, если разработчики становятся вредоносными. Использование API также снижает использование пропускной способности сети веб-сайтом Б для получения тех же данных по сравнению с парсингом.

Веб-сайт Б предпочтет использовать API вместо парсинга, потому что получение данных будет намного проще и менее вероятно, что оно прекратится без предупреждения.

Примером веб-сайта, предлагающего API, является Reddit. Обычный пользователь получает подраздел /r/all, перейдя по ссылке www.reddit.com/r/all. Но Reddit упрощает доступ к конечной точке API для этого подраздела, добавляя .json в конец URL-адреса: www.reddit.com/r/all.json, обратите внимание, что эта ссылка открывает JSON-документ, стандартный способ обмена данными между приложениями.

Парсинг веб-страниц

Если веб-сайт не предлагает API (как, например, RateMyProfessors.com), другой способ получить данные с Веб-сайта A - это "парсить" веб-сайт. Это означает, что Веб-сайт B должен загрузить Веб-сайт A так же, как обычный пользователь, включая вещи, которые не интересны Веб-сайту B, такие как стили, JavaScript и данные, которые не являются важными для Веб-сайта B.

Веб-сайту A сложнее контролировать доступ Веб-сайта B, потому что его запросы выглядят как запросы обычных пользователей. Веб-сайту B также сложнее парсить веб-страницу, потому что ему нужно разбирать HTML (язык, из которого состоит веб-страница), а HTML может измениться в любой момент без предупреждения, что может привести к сбою парсера.

Является ли парсинг веб-сайтов законным?

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

Примечание: Законность парсинга веб-сайтов различается в разных странах, в этой статье я буду обсуждать только законность парсинга в Соединенных Штатах. Я также не являюсь юристом, и следующая информация не является юридическим советом, а всего лишь обсуждением.

Компании обычно утверждают, что парсинг веб-сайтов является незаконным в соответствии с Законом о компьютерных мошенничествах и злоупотреблении информацией 1986 года (Computer Fraud and Abuse Act, CFAA). Этот закон делает незаконным доступ к компьютеру без разрешения. Проблема заключается в том, что "разрешение" является неоднозначным понятием; означает ли размещение веб-страницы в общедоступном интернете неявное разрешение для всех (или чего-либо), находящихся в интернете? Еще один вопрос заключается в том, считает ли CFAA доступ несанкционированным, если нарушаются условия использования, что именно Viacom утверждала в отношении Katal.

В 2012 году Апелляционный суд девятого округа вынес решение в деле United States v. Nosal, в котором он заявил, что они отказываются превращать CFAA в "широкий мандат по контролю за Интернетом". К сожалению, в двух последующих случаях девятый округ запутал свое собственное решение, решив, что совместное использование паролей и использование чужих учетных записей (с согласия) для парсинга данных нарушает CFAA.

9 сентября 2019 года девятый округ принял важное решение в деле hiQ Labs, Inc. v. LinkedIn Corp.

"Бизнес-модель HiQ Labs включает парсинг общедоступных данных LinkedIn для создания корпоративных аналитических инструментов, которые могут определить, когда сотрудники могут уйти в другую компанию или в какие тренинги компании следует инвестировать для своих сотрудников. Возможно, из-за того, что LinkedIn намеревался разработать собственные продукты, конкурирующие с HiQ, LinkedIn направил письмо с требованием прекратить доступ HiQ к веб-сайту и ссылался на дело Power Ventures, утверждая, что любой дальнейший доступ к этой общедоступной информации нарушит CFAA. Вместо того, чтобы ждать судебного иска, HiQ сам подал иск, получив предварительный запрет от окружного суда, который признал, что HiQ "скорее всего" преуспеет в своих исках и признал, что автоматический доступ к общедоступной информации, вероятно, не является нарушением CFAA". — Electronic Frontier Foundation

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

Заключение

Из моего исследования следует, что мне не пришлось снести Катал, но я не слишком расстроен этим. Этот опыт дал мне интересную историю для рассказа и возможность исследовать взаимосвязь между законом и интернетом.

Хотя я использовал парсинг веб-страниц только для упрощения своей жизни, парсинг веб-страниц очень важен для исследований и журналистики. Если бы парсинг веб-страниц был незаконным, редакция ProPublica не смогла бы распространять свой инструмент Facebook Political Ad Collector, который позволил им исследовать, какие аудитории целевые политические кампании выбирают на Facebook, или узнать, что компании дискриминируют старших работников в объявлениях о вакансиях на Facebook. Интернет-архив не смог бы работать с помощью своей службы Wayback Machine, которая позволяет вам вернуться на веб-сайт в разные моменты времени. Даже поисковые системы, такие как Google и DuckDuckGo, столкнулись бы с проблемами индексации интернета, если бы парсинг веб-страниц был незаконным. Девятый апелляционный суд принял очень важное решение в отношении интернета, которое, я надеюсь, будет подтверждено.

Я хотел бы поблагодарить Electronic Frontier Foundation за их статьи о законности парсинга веб-страниц. Если вы считаете эту проблему важной (или многие другие проблемы, над которыми они работают), пожалуйста, подумайте о пожертвовании.

Если вам понравилась эта статья, вам может быть интересно прочитать мою последнюю статью о обратной разработке Tinder.

Исайя Ллойд - студент четвертого курса факультета компьютерных наук Университета Цинциннати. Он интересуется полностековой веб-разработкой, devops и созданием инструментов, которые облегчают жизнь людей. Вы можете найти его на LinkedIn, GitHub, Twitter и его личном веб-сайте. Если у вас есть вопросы или комментарии, не стесняйтесь отвечать на этот пост или писать ему на почту.

Он также ищет место для прохождения практики весной и летом 2020 года. Если вы считаете, что он подходит для вашей компании, не стесняйтесь связаться с ним!