Обход китайской интернет-цензуры: как я создал агрегатор микроблогов с цензурой
Опубликовано: 2022-03-11Как известно во всем мире, правительство Китая применяет строгую цензуру в Интернете. Китайская система цензуры, широко известная как Великий брандмауэр Китая, находится в ведении Министерства общественной безопасности и официально называется «Проект Золотой щит». Система работает с 2003 года.
Международные новостные сайты, которые обычно содержат политически чувствительный контент, такие как New York Times, или сайты социальных сетей, которые не соблюдают правила цензуры, такие как Facebook и Twitter, обычно блокируются и недоступны для китайских пользователей. Это достигается с помощью различных сложных методов.
Что касается китайских новостей и социальных сетей, то практически все находится под наблюдением правительства. Чтобы иметь возможность работать, интернет-провайдеры и поставщики интернет-контента в Китае обычно имеют свой собственный механизм фильтрации контента для блокировки или удаления опубликованного контента его пользователями или даже для прямого удаления учетных записей пользователей, если они считаются незаконными по мнению правительства. политика. Эти компании имеют собственное программное обеспечение для цензуры на своих серверах, а также специальные группы или отделы для ручного решения задач цензуры, с которыми не может справиться автоматизированное программное обеспечение для цензуры. Эти команды сотрудничают с местными подразделениями Министерства общественной безопасности, получают новые приказы и политики и обычно работают вместе друг с другом.
Для наших отечественных веб-разработчиков цензура китайского интернета не только отфильтровывает нашу свободу слова, но и ценные профессиональные ресурсы со всего мира. В своей повседневной работе мне приходится обходить интернет-цензуру, чтобы подключаться через VPN, чтобы использовать Gmail, Dropbox и многие другие важные сайты. Я до сих пор помню, как неловко было в 2010 году, когда сервисы Google стали нестабильными или недоступными в Китае после того, как Google отказался продолжать соблюдать правила цензуры. Это было бы невероятно для разработчиков в других странах.
Цензура на Sina Weibo
Sina Weibo — крупнейшая социальная сеть микроблогов в Китае. Поскольку Twitter не соблюдает правила Китая, Weibo не приходится конкурировать с ним за пользователей. Новости распространяются быстрее и напрямую через Weibo, чем через любое другое СМИ в Китае. Представители молодого поколения, такие как я, любят использовать его для обмена новостями и обсуждения публичных событий. Но, конечно же, из-за китайской интернет-цензуры многие горячие или интересные посты удаляются сразу после публикации. Сообщения о политических и публичных мероприятиях чаще всего удаляются, а развлекательные новости — реже всего. Исследование, проведенное в 2013 году учеными-компьютерщиками Джедом Крэндаллом и Дэном Уоллахом, показало, что около 12% китайских микроблогов удаляются каждый день.
Ожидается, что в политически чувствительные дни, такие как 4 июня, будет удалено большее количество подвергнутых цензуре сообщений в микроблоге. В эти дни пользователи обычно не могут даже ввести определенные деликатные слова, когда пытаются написать микроблог.
Как это выглядит, когда пост подвергается цензуре? Когда вы обновляете новый микроблог на сайте, вы часто будете видеть что-то вроде этого:
Это эквивалент ретвита, когда исходное сообщение обычно отображается в сером поле. Теперь на поле написано «Извините. Микроблог удален. Пожалуйста, смотрите…» Первоначальный пост был призывом к справедливости со стороны матери в связи с похищением, изнасилованием и принуждением к проституции ее 11-летней дочери в 2013 году.
2013 год — это год, когда через платформу микроблогов было раскрыто множество политических скандалов. За это время популярность Sina Weibo резко возросла. В ответ правительство занервничало и начало усиливать цензуру в социальной сети.
До появления микроблогов молодые люди вроде меня, интересующиеся политикой, обычно должны были использовать прокси-серверы или службы туннелирования для поиска конфиденциальных новостей с международных веб-сайтов. Внезапно у нас появилась относительно открытая платформа китайской социальной сети. Но правительство быстро вмешалось, и это оказалось просто вспышкой. Это действительно взбесило меня. Я разговаривал с друзьями, и мы все были возмущены усилением цензуры на платформе. Мои друзья спрашивали: «Почему мы ничего не можем с этим поделать?» Я решил попробовать. Поэтому я создал веб-сайт, чтобы начать обход интернет-цензуры, чтобы увидеть, что именно блокируется или удаляется из Sina Weibo.
Техническое обсуждение
По сути, мне нужно было настроить сервер, который постоянно сканировал бы заблокированные или удаленные китайские микроблоги и показывал их на новом сайте. Я планировал использовать отечественный облачный сервис, такой как Aliyun, но оказалось, что на платформе много ограничений, таких как перенаправление домена, и их цены не дешевле, чем у других облачных сервисов. Конечно, меня дополнительно беспокоило то, что сам сервер окажется под наблюдением, если я разверну его внутри страны. В итоге я купил сервер на Linode и разместил сервер в Японии. Я также купил домен freeweibo.me , чтобы начать обходить цензуру Sina Weibo.
На следующем графике показана общая архитектура системы: MongoDB, веб-сервер и сканер. Я выбрал Node.js для среды разработки, так как он более эффективен и масштабируем для сетевых приложений и лично у меня больше опыта работы с ним. Веб-сервер был разработан с использованием фреймворка Express.js и использовал Weibo API для сбора данных. Первоначально краулер был разработан как отдельный процесс, но позже я обнаружил, что на ранней стадии достаточно объединить его в виде модуля в процесс веб-сервера.
Содержание микроблога состоит из двух основных частей, представляющих интерес. Одним из них являются текстовые данные и их соответствующие атрибуты. Другой — изображения, связанные с постом. Чтобы сохранить пост, мы также хотим загрузить изображения и сохранить их в виде файлов на диске. Для заблокированных или удаленных блогов эти изображения очень важны. В Китае очень распространено и популярно использование изображений для размещения текстового контента, так как этот контент намного сложнее отловить с помощью автоматизированной текстовой фильтрации и цензуры на серверах интернет-компаний.

Основная идея обнаружения заблокированных или удаленных сообщений состоит в том, чтобы постоянно сканировать новые сообщения из известного списка пользователей, а затем перепроверять доступность сообщений позже. Микроблог мог быть удален или заблокирован в течение нескольких минут или нескольких дней. Таким образом, поисковый робот состоит из двух основных задач: задачи выборки для извлечения недавно опубликованного контента и задачи проверки для проверки того, не был ли ранее опубликованный контент подвергнут цензуре.
Сначала я настроил краулер на сканирование микроблогов из 100 самых известных пользователей Weibo. Но оказалось, что каждый день удаленных блогов почти не выявляется. Причина в том, что большинство ведущих пользователей не интересуются политическими или общественно чувствительными темами — они никогда не публикуют и не пересылают подобные микроблоги. Например, этот блоггер, актриса с более чем 10 миллионами подписчиков, является одним из самых популярных пользователей, но она никогда не публикует деликатные блоги.
После некоторых экспериментов и размышлений я придумал метод адаптивного поиска пользователей, которые постоянно подвергаются цензуре. Сеть социальных сетей взаимосвязана по темам, и пользователи, как правило, собираются в группы по интересам. Если пользователь интересуется общественными или политическими темами, то он с большей вероятностью будет публиковать или пересылать блоги других подобных пользователей. Эти перенаправленные сообщения обеспечивают хороший способ выявления новых пользователей для сканирования.
Например, предположим, что пользователь А уже находится в базе данных, и сканер обнаруживает, что один блог, который был повторно опубликован пользователем А, удален. Если пользователя B, первоначального автора блога, нет в базе данных, то краулер сохранит пользователя B. В следующий раз, когда краулер будет повторно сканировать новые блоги, он также будет сканировать новые блоги от пользователя B. Таким образом, количество сканируемые пользователи будут автоматически расти, используя этот вид связи с социальными интересами.
После настройки алгоритма поискового робота для использования преимуществ этой методологии мне нужно было всего лишь засеять нескольких ключевых пользователей, которые были сильно заинтересованы в публикации конфиденциальных блогов, и сканер автоматически обнаружил новых пользователей для сканирования. Ежедневное общее количество обнаруженных подвергнутых цензуре блогов неуклонно росло день ото дня. Ниже приведен снимок заархивированных удаленных блогов в моем почтовом ящике.
- Исторический диалог Мао Цзэдуна, упрекающего местного чиновника за то, что он не снес древнюю городскую стену Чэнду.
- Пост о Сюй Чжиюн, активном адвокате по правам человека. Он помог многим обездоленным людям и основал Движение новых граждан в Китае. Он был приговорен к тюремному заключению в январе 2014 года.
- Критика правительственной газеты People's Daily
- Прокомментируйте арест и суд над Ван Гунцюанем, миллиардером из Китая и лидером Движения новых граждан.
- Ссылка на арест активистов, которые принимают участие в общественных движениях.
Результаты
После двух недель написания кода и отладки моего китайского микроблога в обход системы я развернул сайт на freeweibo.me . Однако после нескольких недель работы сервер больше не обнаруживал новых блогов. Проведя небольшое расследование, я обнаружил две проблемы. Во-первых, платформа Weibo изменила свой оригинальный интерфейс API. Другой заключался в том, что запросы к API сканера превышали ограничение скорости (1000 в минуту) из-за увеличения количества блогов и пользователей в базе данных. Поэтому я настроил свой код, чтобы он принял новый интерфейс, а также уменьшил количество запросов API в минуту. С тех пор краулер работал стабильно.
Я столкнулся с дилеммой, сообщать ли об этом сайте многим людям. Я знал, что чем больше людей посетит сайт, тем скорее правительство обнаружит его и заблокирует. Поэтому я поделился сайтом только с некоторыми из моих друзей. Первоначально было всего около 10-20 посещений в день. Но месяц спустя количество посещений в некоторые дни достигало 80 и более, а у меня были десятки подписчиков по электронной почте.
А потом, как я и ожидал, настало утро, когда я обнаружил, что мой сайт заблокирован в Китае. Это продолжалось около трех месяцев. Чтобы после этого попасть на сайт, пользователям приходилось использовать службы туннелирования VPN для посещения сайта. Это нецелесообразно для большинства китайских интернет-пользователей.
Однако в тот же день я с облегчением и радостью обнаружил, что другой сайт, freeweibo.com, предоставляет точно такую же услугу, но более сложную, чем созданная мной. Проект freeweibo.com очень изобретателен. Он активен в социальных сетях и предоставляет различные способы доступа к контенту, такие как RSS-каналы, подписка по электронной почте и зеркальные сайты для домашних пользователей. У него даже есть мобильное приложение! Я не знаю, кто создал этот сайт, но я рад, что у нас общее видение.
Заключение
По обстоятельствам было очевидно, что мой сайт уже не очень полезен, и через несколько месяцев я его закрыл.
Несмотря на результат, я не считаю проект напрасным. Наоборот, это был чудесный опыт, хотя и продлился всего несколько месяцев. Это помогло мне глубоко оценить реальность моей страны.
В Китае, чтобы вести интернет-бизнес, нужно очень осторожно относиться к цензуре, иначе рано или поздно у вас возникнут проблемы. Сайты социальных сетей вряд ли смогут добиться успеха, если они не соблюдают строгую цензуру и не ставят под угрозу конфиденциальность пользователей.
Обновлять
Исходный код freeweibo.me теперь доступен на GitHub здесь. Как указано выше, этот исходный код не имеет отношения к аналогичному сайту freeweibo.com .