Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Причина блокировки Пинаты #337

Open
Verity-Freedom opened this issue Dec 11, 2024 · 15 comments
Open

Причина блокировки Пинаты #337

Verity-Freedom opened this issue Dec 11, 2024 · 15 comments

Comments

@Verity-Freedom
Copy link

Verity-Freedom commented Dec 11, 2024

В Tor Portable Антизапрет работает даже если сломаны адреса обновлений (хотя могут быть перебои). Ютуб и Дискорд также разблокированы. И надеюсь что за вот это негодование со мной ничего плохого не сделают, мы все за свободу слова в равной степени.

image
Источник снимка: https://ntc.party/t/обход-блокировок-рунета-pac-скрипт-не-обновляется-с-7-декабря-2024-провайдер-ттк-кемерово-на-всех-компьютерах-и-браузерах/13634/18.

@Verity-Freedom
Copy link
Author

@ValdikSS желаю Антизапрету поправки, но нужны структурные изменения, это непорядок. Притом изменения желательно со стороны именно Ильи, мне кажется произошедшее - его вина на 95%. Не знаю получится ли восстановить Пинату, но если получится - нужно установить запрет на скачивание Антизапрета чаще определённого промежутка времени, ибо Обход ВООБЩЕ не хранил Антизапрет, а постоянно пытался его скачать, что, как мне кажется, и убило в конечном итоге Пинату из-за объективно большой нагрузки, которую это создавало, и любой другой хостинг это тоже может убить. Нужно сделать Антизапрет работоспособным в Обходе в оффлайн режиме, и моя личная вкусовщина - добавить полноценную поддержку своих прокси, иначе я так и буду просить людей переходить на Омегу. Я со своей стороны некоторым людям помог, но я в разы менее популярен. И если необходима срочная оплата серверов Антизапрета, стоит представить произошедшее как крик о помощи, ибо я очень переживаю за очередной цикл рефинансирования, за который Илья тоже в основном ответственен. Но я повторяю, в произошедшем считаю вашей вины нет совершенно, вы делаете всё что можете, моё глубокое сочувствие, хочется только ваше мнение тоже слышать почаще, ибо с нами в основном Илья общается.

@ilyaigpetrov
Copy link
Collaborator

И если необходима срочная оплата серверов Антизапрета, стоит представить произошедшее как крик о помощи, ибо я очень переживаю за очередной цикл рефинансирования, за который Илья тоже в основном ответственен.

Есть не "крик о помощи", а просто просьба всем заинтересованным.
В #329 (comment) я написал:

К сожалению, я не добавляю новый функционал и не развиваю существующее расширение.
Первостепенной задачей данного проекта на текущий момент является миграция на новые требования WebStore в виде Manifest V3.
Последние усилия с моей стороны, направленные на достижение этой цели, датируются 22 августом 2024.
Если вы хотите поучаствовать -- задавайте вопросы, изучайте код, присылайте PR.

Можно начать с проблемы, из-за которой существующий PAC-скрипт удаляется, если не удаётся скачать его из источника. Заплатку от этой ошибки лучше будет выполнить сразу вместе с первым выпуском расширения в формате Manifest v3. Код для mv3 предполагается написать заново, с минимальным функционалом (MVP), на основе этой ветки. Расширение желательно абстрагировать и лишить зависимости от РФ и АнтиЗапрета, но поставлять этот скрипт как настройку по умолчанию для РФ. В первом mv3-выпуске также планируется реализовать возможность добавления своего PAC-скрипта по ссылке. Например, отсюда: https://github.com/onminonA/proxy.pac.

Ну, и риски того, что PAC-скрипты и расширения будут блокироваться РКН, тоже важно иметь ввиду.

@Verity-Freedom
Copy link
Author

И если необходима срочная оплата серверов Антизапрета, стоит представить произошедшее как крик о помощи, ибо я очень переживаю за очередной цикл рефинансирования, за который Илья тоже в основном ответственен.

Есть не "крик о помощи", а просто просьба всем заинтересованным. В #329 (comment) я написал:

К сожалению, я не добавляю новый функционал и не развиваю существующее расширение.
Первостепенной задачей данного проекта на текущий момент является миграция на новые требования WebStore в виде Manifest V3.
Последние усилия с моей стороны, направленные на достижение этой цели, датируются 22 августом 2024.
Если вы хотите поучаствовать -- задавайте вопросы, изучайте код, присылайте PR.

Можно начать с проблемы, из-за которой существующий PAC-скрипт удаляется, если не удаётся скачать его из источника. Заплатку от этой ошибки лучше будет выполнить сразу вместе с первым выпуском расширения в формате Manifest v3. Код для mv3 предполагается написать заново, с минимальным функционалом (MVP), на основе этой ветки. Расширение желательно абстрагировать и лишить зависимости от РФ и АнтиЗапрета, но поставлять этот скрипт как настройку по умолчанию для РФ. В первом mv3-выпуске также планируется реализовать возможность добавления своего PAC-скрипта по ссылке. Например, отсюда: https://github.com/onminonA/proxy.pac.

Ну, и риски того, что PAC-скрипты и расширения будут блокироваться РКН, тоже важно иметь ввиду.

Илья я в первую очередь расстроен тем что PAC скрипт не обновлялся уже два месяца, но расширение всё это время стучало Пинату без особых причин, и достучало до блокировки. Мне кажется вы в этом плане неосознанно подвели автора Антизапрета и мне его жаль, я очень надеюсь, что вы потом объявите совместный сбор и поможете друг другу, ибо Антизапрет научился обходить блокировки РКН и ДО СИХ ПОР успешно их обходит, Обход сейчас не работает по причине блока Пинаты, а блок Пинаты случился из-за того что Обход стучал её в целях обновить скрипт который уже два месяца не обновлялся. Вы создали эту ошибку, не специально, но всё указывает на это, простите за такую правду горькую. Вам сейчас важно поддерживать автора Антизапрета морально и информационно чтобы очередной цикл финансирования прошёл успешно и он не задепрессовал, Антизапрет это великое общероссийское достояние.

@Verity-Freedom
Copy link
Author

Нужно залатать ошибку отсутствия работы расширения в режиме оффлайн, нужен manifest 3, нужен лимит обновлений pac-скрипта раз в сутки.

@ilyaigpetrov
Copy link
Collaborator

ilyaigpetrov commented Dec 11, 2024

расширение всё это время стучало Пинату без особых причин, и достучало до блокировки.

Я не смог найти такую ошибку в коде. Возможно, я невнимательно смотрел. Буду искать ещё.

@Verity-Freedom
Copy link
Author

Verity-Freedom commented Dec 11, 2024

расширение всё это время стучало Пинату без особых причин, и достучало до блокировки.

Я не смог найти такую ошибку в коде. Возможно, я невнимательно смотрел. Буду искать ещё.

Скрипт не обновлялся два месяца, а установить расширение людям нужно один раз. Все эти два месяца на Пинату в теории могли бы попадать только новые люди устанавливающие антизапрет впервые. А Обход стучит Пинату в целях скачивания антизапрета 1) каждый раз при смене режима с антизапрета и обратно 2) каждый раз с определённой периодичностью в целях автоапдейта. С учётом того что расширением пользуется уже миллион человек и официальный ответ от Пинаты, что геолокация здесь не причём, а именно объём трафика, понятно, что проблема возникла из-за того, что вовремя не оптимизирован был процесс автообновления пак-скрипта в Обходе, и это должно было случиться рано или поздно с плюс-минус любым хостингом, я так вижу эту ситуацию. А ошибка в коде здесь в том что он не хранит скрипт оффлайн, а каждый раз пытается скачать заново. То что процесс автообновления так был устроен это уязвимость, которая раньше не играла роли, но не ошибка, а отсутствие оптимизации. Автообновление должно быть лимитировано. Но автообновление и тот факт что расширение не хранит скрипт оффлайн взаимосвязано, надо решать и то и другое.

@Verity-Freedom
Copy link
Author

@ilyaigpetrov можно вообще убрать автообновление полностью и сделать обновления ручными, или пусть раз в неделю пинату стучит. Нет большого смысла пытаться автообновить Антизапрет чаще чем раз в неделю с учётом того что он не обновлялся уже два месяца. Но даже если будет автоапдейт не чаще чем раз в сутки, фиксировано, это уже вероятно снизило бы нагрузку в какой-то мере. Я не знаю какая сейчас у расширения стояла периодичность автоапдейтов если находиться в режиме Антизапрет и не слезать с него, но эту периодичность надо увеличивать, она слишком маленькая. Подозреваю, что или что-то по типу раз в час, или при перезапуске браузера, и то и другое потенциально чаще, чем даже раз в сутки. Надеюсь Valdik починит пинату, а вы почините периодичность автоапдейтов в расширении. Я действительно уверен, что первоначальная причина сбоя в этом.

@ilyaigpetrov
Copy link
Collaborator

Это open source, @Verity-Freedom.
Критикуешь -- присылай PR или хотя бы указывай в issues конкретно на ошибку в коде (файл, сточка).
Не можешь убедить разработчика -- можно форкнуть и открыть своё казино, с блэкджеком и прочим.

Код и логи расширения, wireshark, запросы в devtools -- инструментов достаточно.

Я действительно уверен, что первоначальная причина сбоя в этом.

Я постараюсь проверить всё ещё раз.

@Verity-Freedom
Copy link
Author

Я постараюсь проверить всё ещё раз.

Ну это очевидно что оно могло бы 2 месяца все эти не обновляться у тех людей что оно уже установлено, ибо антизапрет столько не обновлялся. Адреса обновления антизапрета сломаны уже несколько дней расширение всё ещё говорит что обновило что-то 12 часов назад. И до поломки антизапрета мне оно что что-то было обновлено 2 месяца назад не показывало. Поэтому я подозреваю что поведение расширения - скачивать уже установленный антизапрет в той же самой версии с Пинаты, что спровоцировало блокировку. Иначе причина блока пинаты которая используется только в качестве хранилища для тела антизапрета неясна. В коде я бы вырезал всё ответственное за автоапдейт, пусть устанавливает антизапрет только при установке самого расширения и смене режима.
image

@Totenkraft
Copy link

Каждый пользователь по идее может жать на кнопку проверки обновления (без какого либо кд), ркн могли в теории заспамить этими запросами пинату.

@Verity-Freedom Verity-Freedom changed the title Мои мысли по ситуации Причина блокировки Пинаты Dec 12, 2024
@sk8rthug
Copy link

Это open source, @Verity-Freedom. Критикуешь -- присылай PR или хотя бы указывай в issues конкретно на ошибку в коде (файл, сточка). Не можешь убедить разработчика -- можно форкнуть и открыть своё казино, с блэкджеком и прочим.

А ошибки никакой нет. Это следствие кривой реализации. Суть проблемы уже и так в деталях расписали - автор расширения быстрее остальных разберётся, где и как это лучше переписать. Плодить форки ни к чему.

@ilyaigpetrov
Copy link
Collaborator

автор расширения быстрее остальных разберётся

Так я и есть разработчик, и я не могу воспроизвести ошибку. Вот как я пробовал. И вы попробуйте, не будьте голословными. А то присылаете мне ничем не подтверждённые догадки, которые никак не воспроизводятся.

  1. Качаем runet-censorship-bypass-0.0.1.63-full-rc0.zip.
  2. Распаковываем.
  3. Открываем в текстовом редакторе 37-sync-pac-script-with-pac-provider-api.js, находим строочки [278, 281]:
pacUrls: [
  'https://e.cen.rodeo:8443/proxy.pac',
  'https://antizapret.prostovpn.org:8443/proxy.pac',
  'https://antizapret.prostovpn.org:18443/proxy.pac',
  'https://antizapret.prostovpn.org/proxy.pac',
],
  1. Заменяем все ссылки в этих строках на собственные, не забываем сохранить изменённый файл:
pacUrls: [
  'https://httpstat.us/403', // Генерирует ответ с неудачным http-кодом 403, как было на Пинате.
],
  1. На https://github.com/anticensority/runet-censorship-bypass/releases/tag/0.0.1.63 под заголовком "Из .zip-архива (для Chromium/Chrome)" следуем инструкциям по установке только что распакованной и отредактированной папки с расширением.
  2. На chrome://extensions находим плашку расширения и жмём "Inspect views background page" (не знаю названия этой надписи в русском интерфейсе).
  3. В открывшемся окне для откладки нам интересны вкладки "Console / Консоль" и "Network / Сеть".
  4. Инициируйте обновления расширения, получите ошибку, проверьте в окне для отладки на нужных вкладках количество запросов к серверу httpstat.us. Во вкладке "Консоль" -- это красные ошибки с кодом 403, в "Сети" -- это запросы с 403 в имени и статусе.

console-403
network-403

@Totenkraft
Copy link

Немного не понял причём тут сама система обновления из расширения(судя по всему она работает исправно), если из самой Пинаты сообщили что блок скорее всего из-за превышения лимитов на доступ к файлу. Есть информация сколько запросов было к нему на тот момент, или какие лимиты на нём были установлены?

@sk8rthug
Copy link

sk8rthug commented Dec 16, 2024

Так я и есть разработчик, и я не могу воспроизвести ошибку.

Я не понимаю, какую ошибку вы пытаетесь воспроизвести. Корень проблемы в том, что расширение не хранит скрипт локально, а пытается при каждом запуске подтянуть его с некого источника. Если источник недоступен, то расширение становится неработоспособным. Надо, чтобы скрипт хранился локально, и обновлялся только при необходимости или вручную, вот и всё.

@ZenMasterSych
Copy link

автор расширения быстрее остальных разберётся

Так я и есть разработчик, и я не могу воспроизвести ошибку. Вот как я пробовал. И вы попробуйте, не будьте голословными. А то присылаете мне ничем не подтверждённые догадки, которые никак не воспроизводятся.

1. Качаем [runet-censorship-bypass-0.0.1.63-full-rc0.zip](https://github.com/anticensority/runet-censorship-bypass/releases/download/0.0.1.63/runet-censorship-bypass-0.0.1.63-full-rc0.zip).

2. Распаковываем.

3. Открываем в текстовом редакторе `37-sync-pac-script-with-pac-provider-api.js`, находим строочки [278, 281]:
pacUrls: [
  'https://e.cen.rodeo:8443/proxy.pac',
  'https://antizapret.prostovpn.org:8443/proxy.pac',
  'https://antizapret.prostovpn.org:18443/proxy.pac',
  'https://antizapret.prostovpn.org/proxy.pac',
],
4. Заменяем все ссылки в этих строках на собственные, не забываем сохранить изменённый файл:
pacUrls: [
  'https://httpstat.us/403', // Генерирует ответ с неудачным http-кодом 403, как было на Пинате.
],
5. На https://github.com/anticensority/runet-censorship-bypass/releases/tag/0.0.1.63 под заголовком "Из .zip-архива (для Chromium/Chrome)" следуем инструкциям по установке только что распакованной и отредактированной папки с расширением.

6. На `chrome://extensions` находим плашку расширения и жмём "Inspect views background page" (не знаю названия этой надписи в русском интерфейсе).

7. В открывшемся окне для откладки нам интересны вкладки "Console / Консоль" и "Network / Сеть".

8. Инициируйте обновления расширения, получите ошибку, проверьте в окне для отладки на нужных вкладках количество запросов к серверу httpstat.us. Во вкладке "Консоль" -- это красные ошибки с кодом 403, в "Сети" -- это запросы с 403 в имени и статусе.

console-403 network-403

вам ведь выше написали неоднократно, что проблема в постоянной попытке аддона обновлять скрипты через сеть. дело банально в количестве запросов.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants