Привет, хабросообщество!
Довольно давно под «гостем» читаю хабр и вот подвернулся повод пройти регистрацию и написать опровержение для статьи «Браузерное расширение от сайта Kinogo». Нашу попытку обойти блокировку посчитали «вредоносной» и сегодня я расскажу почему это не правда.
Предлагаю взять попкорн и поучаствовать в сраче поиске истины.
Я представляю команду разработчиков Kinogo (показываем бесплатно фильмы онлайн) и обычно мы занимаемся поддержкой работоспособности сайта. Всё изменилось когда за последнюю неделю мы успели попасть в центр внимания со своим «плагином для браузера». В обсуждениях на разных сайтах посчитали что мы крадем пароли, отправляем личные сообщения вашим друзьям ВК, подменяем рекламу и занимаемся всякой другой чернухой в интернете. После того как появилась статья на Хабре в которой наше расширение обвинили во всех грехах — мы решили дать официальный ответ и все рассказать. Давайте начнем с обсуждения как мы до такого докатились, а затем плавне перейдем к тому, почему наше расширение нельзя считать вредоносным.
Зачем это всё?
Госдума приняла так называемый новый «антипиратский» закон. Тем самым открывая для себя возможность внесудебного решения споров и блокировки сайтов «злостных нарушителей». «Какая свежая новость!» — скажите Вы. Действительно, приняли они его давно, но в законную силу он вступает с 1 мая 2015 года. В связи с тем что мы являемся крупным «пиратским» порталом для фильмов онлайн — мы решили перестраховаться и придумать как обойти блокировку.
Как вы дошли до такой жизни?
Нами были перепробованы разные способы борьбы с блокировкой: начиная от построения цепочки прокси серверов перед нашим основным сервером (что бы скрыть ip) и заканчивая покупкой зеркальных доменов для их раскрутки. Все это не решало основной проблемы — блокировки доменного имени и потери всей постоянной и поисковой аудитории.
Конечно же у нас есть определенный процент аудитории который не будет разбираться почему портал для просмотра фильмов был заблокирован, а просто нагуглят фильм в другом месте. Описывать как поменять DNS или использовать прокси — тоже не вариант, для многих это очень сложно.
Мы решили обратится к опыту порталов, которые работают не легально, но успешно обходят любые попытки их блокировать. Нет, нет. Разговор идет не про «порно порталы», а про сайты с азартными играми. Согласитесь, было бы странно если бы идея использовать плагин для браузера пришла бы нам в голову на порно сайте )
Онлайн казино уже очень давно используют плагины что бы перенаправлять своих посетителей на доступные зеркала. Этот вариант нам показался очень интересным, а самое главное он доступен для понимания большому кругу пользователей.
Механизм работы
Учитывая что в написании плагинов для браузера мы совсем зеленые — было принято решение посмотреть как с этим справились другие. Долго и нудно изучая различные способы ухода от блокировки, мы выделили следующие:
- В случае если пользователь заходит на заблокированный сайт — отправлять его на любое доступное зеркало. С одной стороны — лучший способ для
наспользователя, с другой — требуется постоянно подкачивать список доступных зеркал и отслеживать сайты на которые он заходит - Добавить в интерфейс браузера кнопку, при клике на которую — перенаправлять на зеркало. А вспомнит ли пользователь про эту кнопку когда сайт будет действительно заблокирован?
Наверное самый бесполезный вариант - Оповещать средствами плагина (всякими всплывающими окнами и тп) что сайт будет заблокирован и он должен привыкать к новому домену. Вариант не плохой, но каким то образом требуется постоянно отслеживать каким пользователям что мы уже показали (из сообщений). Продумать механизм что бы оповещения небыли слишком навязчивыми. Даже в этом случае нет гарантии что пользователь прислушается и будет действовать согласно этим сообщениям
Захватить контроль над браузером пользователя и всегда показывать фильмы
Конечно же нам понравились варианты 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/
Добавить комментарий