Обзор расширения Kinogo от разработчика

от автора

Привет, хабросообщество!

Довольно давно под «гостем» читаю хабр и вот подвернулся повод пройти регистрацию и написать опровержение для статьи «Браузерное расширение от сайта Kinogo». Нашу попытку обойти блокировку посчитали «вредоносной» и сегодня я расскажу почему это не правда.

image

Предлагаю взять попкорн и поучаствовать в сраче поиске истины.

Я представляю команду разработчиков Kinogo (показываем бесплатно фильмы онлайн) и обычно мы занимаемся поддержкой работоспособности сайта. Всё изменилось когда за последнюю неделю мы успели попасть в центр внимания со своим «плагином для браузера». В обсуждениях на разных сайтах посчитали что мы крадем пароли, отправляем личные сообщения вашим друзьям ВК, подменяем рекламу и занимаемся всякой другой чернухой в интернете. После того как появилась статья на Хабре в которой наше расширение обвинили во всех грехах — мы решили дать официальный ответ и все рассказать. Давайте начнем с обсуждения как мы до такого докатились, а затем плавне перейдем к тому, почему наше расширение нельзя считать вредоносным.

Зачем это всё?

Госдума приняла так называемый новый «антипиратский» закон. Тем самым открывая для себя возможность внесудебного решения споров и блокировки сайтов «злостных нарушителей». «Какая свежая новость!» — скажите Вы. Действительно, приняли они его давно, но в законную силу он вступает с 1 мая 2015 года. В связи с тем что мы являемся крупным «пиратским» порталом для фильмов онлайн — мы решили перестраховаться и придумать как обойти блокировку.

Как вы дошли до такой жизни?

Нами были перепробованы разные способы борьбы с блокировкой: начиная от построения цепочки прокси серверов перед нашим основным сервером (что бы скрыть ip) и заканчивая покупкой зеркальных доменов для их раскрутки. Все это не решало основной проблемы — блокировки доменного имени и потери всей постоянной и поисковой аудитории.

Конечно же у нас есть определенный процент аудитории который не будет разбираться почему портал для просмотра фильмов был заблокирован, а просто нагуглят фильм в другом месте. Описывать как поменять DNS или использовать прокси — тоже не вариант, для многих это очень сложно.

Мы решили обратится к опыту порталов, которые работают не легально, но успешно обходят любые попытки их блокировать. Нет, нет. Разговор идет не про «порно порталы», а про сайты с азартными играми. Согласитесь, было бы странно если бы идея использовать плагин для браузера пришла бы нам в голову на порно сайте )

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

Механизм работы

Учитывая что в написании плагинов для браузера мы совсем зеленые — было принято решение посмотреть как с этим справились другие. Долго и нудно изучая различные способы ухода от блокировки, мы выделили следующие:

  1. В случае если пользователь заходит на заблокированный сайт — отправлять его на любое доступное зеркало. С одной стороны — лучший способ для нас пользователя, с другой — требуется постоянно подкачивать список доступных зеркал и отслеживать сайты на которые он заходит
  2. Добавить в интерфейс браузера кнопку, при клике на которую — перенаправлять на зеркало. А вспомнит ли пользователь про эту кнопку когда сайт будет действительно заблокирован? Наверное самый бесполезный вариант
  3. Оповещать средствами плагина (всякими всплывающими окнами и тп) что сайт будет заблокирован и он должен привыкать к новому домену. Вариант не плохой, но каким то образом требуется постоянно отслеживать каким пользователям что мы уже показали (из сообщений). Продумать механизм что бы оповещения небыли слишком навязчивыми. Даже в этом случае нет гарантии что пользователь прислушается и будет действовать согласно этим сообщениям
  4. Захватить контроль над браузером пользователя и всегда показывать фильмы

Конечно же нам понравились варианты 1 и 4, но в итоге выбрали первый. Именно при таком подходе мы можем обеспечить максимальный комфорт для пользователя. Схема проста: когда юзер зайдет на заблокированный домен «kinogo.net» его автоматически переведет на доступное зеркало, а если и зеркало заблокировано — плагин так же это отследит и переведет на другое.

  • Не требует участия пользователя
  • Нет всплывающих окон
  • Не портим своими логотипами и кнопками его панель браузера

Если смотреть со стороны пользователя — вариант просто отличный. Для нас как для разработчиков поддерживать данное решение очень легко (бери только и список зеркал обновляй вовремя). Идеально, да?

Как и где размещать расширение

Расширение прошло успешную валидацию в Google Play, несмотря на значительные переделки и описания для команды гугл. Они весьма подозрительно относятся к подобному роду расширениям, но после непродолжительного общения — нас пустили в магазин. Таким образом смогли покрыть основную часть посетителей нашего сайта, ведь расширения из магазина работают на всех Chromium-подобных браузерах (yandex browser, amigo, rambler, google chrome, comodo dragon и др)

Для Firefox все было немного сложнее, ведь их магазин почему то выглядит заброшенным. Мы подали заявку на валидацию, успешно справились с несколькими исправлениями и повисли в долгой очереди на апрув. На момент написания статьи мы занимаем 157 место из 168. В связи с этим мы решили распространять xpi через сайт, согласившись с тем что расширение на компьютере пользователей мы больше обновить не сможем.

Заявку в магазин Оперы мы так же отправили и сейчас всё еще ждем пока наш плагин проверят. Очень жаль что по какой то причине расширения из Google Play не могут быть установлены в этом прекрасном браузере.

«Нет ничего столь совершенного, чтобы быть свободным от всяких упреков» (с) Эзоп

Мы были очень удивлены когда наше расширение вызвало подозрение у разработчиков. Я постараюсь выделить самые популярные вопросы возмущения и ответить максимально открыто и подробно:

  • «Ваше расширение вообще работает? Оно защищает Kinogo от блокировки?»
    Конечно работает и это очень легко проверить! Просто заблокируйте через свой роутер или локальный hosts файл домен «kinogo.net» и при входе вас отправит на зеркало. При этом отправка будет происходит с сохранением всей get строки.
  • «Почему вы не получаете список зеркал? Где это в коде?»
    Получаем! Механизм получения реализован по ссылке kinogo.info/list.txt и успешно работает для Firefox расширения. Для Google Chrome — это не требуется, мы решили что будет проще вшивать свежее зеркало прямо в код (хотя сначала в нем был реализован аналогичный метод получения зеркал). Обновлять Firefox плагины на компьютере пользователя мы не можем (я писал об этом выше), именно поэтому они получают список удаленно.
  • «Зачем вы загружаете файл getscripts2 на каждой странице которую я посещаю?»
    Увы, но это вынужденная мера. В случае если по каким то причинам будет заблокирован домен через который мы получаем список зеркал (критично для Фокса), либо мы потеряем возможность обновлять плагин в магазине Google (по разным причинам: жалобы конкурентов, подозрения пользователей или гугла, блокировка по причине использования зеркальных плагинов) — это будет единственным возможным способом определить что вы находитесь на доменах Kinogo и перевести вас на зеркало, в случае блокировки
  • «Что вы делаете с моим компьютером? Почему все тормозит, меняются обои на рабочем столе и компьютер ругается на вирусы»
    Это уже из области «фантастики». Мы ничего не делаем кроме описанного выше. Все остальные жалобы которые мы получали — просто не может сделать расширение для браузера. Пожалуйста, отключите его и убедитесь что он не является причиной ваших проблем на компьютере. Мы специально оставляли комментарии в коде и делали его максимально доступным для понимания.
  • «Зачем вы собираете мои пароли, ip, домашний адрес и все страницы что я посещаю?»
    Ничего подобного не происходит. Мы действительно передаем адрес текущей страницы где вы находитесь, но только из-за описанных выше причин. Ваша поисковая история не ведется, данные о компьютере не собираются и не записываются на наших серверах. Мы постараемся в будущем усовершенствовать наше расширение и позволить вам самим в виде «опций» выбрать какой способ защиты вы хотите использовать

Вывод

Даже преследуя вполне благую цель для своих посетителей — есть шанс получить большое кол-во критики и недовольства в свой адрес. Самое главное что мы хотели показать своей статьей — мы не делаем ничего плохого. В манифесте к расширению и в описании магазина мы постарались максимально подробно всё рассказать. Код расширения не обфусцирован и не подгружает другой код с сервера.

В статье в которой назвали наше решение «вредоносным», автор не привел не одного противозаконного действия которое мы выполняем. Если наша реализация вызвала у вас вопросы или подозрения, почему вы сразу отнесли нас к «вредоносным» расширениям? Это тоже самое что считать вредоносными все программы, которые требуют для запуска права администратора. Я надеюсь текущая статья будет полезна для хабросообщества, среди которого есть и пользователи Kinogo.

Мы так же сделали определенные выводы для себя. Способ в котором мы загружаем свой скрипт на других страницах (даже ничего противозаконного не делая и вполне аргументированно) — вызывает у многих подозрение. В ближайшее время мы добавим пункт «Настройки» и возможность отключить этот тип защиты.

Спасибо за внимание и боритесь за свободный Интернет!

ссылка на оригинал статьи http://habrahabr.ru/post/257647/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *