MarisKori / rknalert

This browser extension shows a notice about site in current tab if it's blocked by government in Russia.
https://chrome.google.com/webstore/detail/rkn-alert/mdbffnnpjhnfmnenfkffjohdgjfeiodn
23 stars 3 forks source link

Баг отображения информации при фильтрации по диапазону адресов. #7

Open IRainman opened 5 years ago

IRainman commented 5 years ago

www.7-zip.org Сайт доступен. Возраст: 6714 дней. В реестре отсутствует.

Но это не так :(

nslookup www.7-zip.org Address: 159.65.89.65

159.65.0.0/16 сейчас в блоке 15.3 | Генпрокуратура27-31-2018/Ид2971-1816.04.2018 | ограничивается к ip 15.4 | Таганский районный суд г. Москвы2-1779/201813.04.2018 | ограничивается к ip

IRainman commented 5 years ago

Хм, а если зайти через VPN то показывает что в блоке. Ерунда какая то.

MarisKori commented 5 years ago

@IRainman В вашем копипасте, я так понимаю, данные об ip вообще отсутствуют. Так откуда расширение узнает, что сайт заблокирован? Домен не заблокирован, а ip проверить нельзя. Вот и получается, что сайт должен быть доступен.

Данные об ip-адресе расширение может получить лишь двумя путями: 1) Непосредственно от браузера в момент загрузки сайта. 2) От DNS сервера.

Получение ip от браузера К сожалению, если сайт просто не грузится (такое бывает по разным причинам, в том числе когда провайдер блокирует сайт через https), то браузер не предоставляет расширению информацию об ip-адресе. Похоже, это ваш случай. Хотя есть и другие варианты, когда инфа о текущем ip не доступна. В popup'е расширения текущий адрес будет помечен словом "текущий". Это тот адрес, по которому произошла загрузка сайта. Если же такого слова нет, то расширение не знает, по какому из известных ip-адресов (если такая инфа имеется) был загружен сайт.
Получение ip от DNS-сервера Судя по вашему запросу, получение ip от DNS-сервера у вас отключено в настройках расширения (галочка "Использовать HTTP-DNS" выключена). Либо расширение по каким-то причинам не смогло достучаться до сервера DNS. Но даже если опцию включить,то всё равно всё не так просто, как кажется. Дело в том, что сайт может быть доступен по разным адресам. И список этих адресов может отличаться, в зависимости от DNS, который вы используете, от вашей страны или даже от времени суток. Теоретически (в будущем) DNS вам может отдавать любой список ip, какой пожелает, следуя какому-то алгоритму, а не просто возвращать все известные адреса. В качестве наглядного примера можете попытаться узнать все ip адреса для www.youtube.com (подсказка: не верьте своему днс-резолверу, их гораздо больше, используйте разные днс-сервера, попробуйте резолвить через разные прокси или vpn). В расширении RKN Alert есть опция выбора ДНС. К сожалению, по протоколу DNS браузер общаться не разрешает, поэтому есть небольшой выбор из сервисов DNS, доступных по протоколу HTTP(S), в том числе от Google и от Cloudflare. Даже не переключаясь на VPN (у которого свой DNS), а просто играя с этой опцией, вы можете заметить разницу в списке ip для некоторых популярных сайтов (не для всех). И небольшое замечание: получение ip адресов осуществляется только после клика на значек расширения. Так сделано по нескольким разумным причинам. Но для вас важно, что цвет значка может быть, например, зеленый, а после клика, когда будет получена дополнительная информация, цвет может поменяться. И это нормально. Конечно, сайт www.7-zip.org, похоже, имеет всего 1 адрес и это всё к нему не относится. Но факт остается фактом - в вашем случае вообще нет информации об ip.
Лично у меня всё отображается нормально Вот мой скриншот. ![image](https://user-images.githubusercontent.com/18173966/52524674-b0960a00-2cb0-11e9-8851-89a546c6d427.png) Справедливости ради хочу сказать, что сайт у меня грузится. На моём провайдере работает отличная прога GoodbyeDPI, позволяющая не пользоваться прокси и vpn, то есть обращение к сайту происходит напрямую с максимальной скоростью. Вот именно ей я и пользуюсь круглосуточно. Собственно, я уже забыл, что она установлена. Так что инфа об ip сайта расширению доступна сразу. Та же картина должна быть и в случае использования VPN. А вот использование прокси или специального расширения (которое тоже по сути прокси) исказит эту информацию. Но даже если не использовать никакой из способов обхода, есть же информация от DNS. Специально для чистоты эксперимента отключил GoodbyeDPI и проверил в другом браузере - сайт www.7-zip.org не загрузился, иконка расширения была зеленой, но при клике по ней сразу стала красной, и расширение показало всю информацию о блокировке. К слову, у меня используются DNS от Гугл (на всякий случай сообщаю).
Выводы 1. Подкрутите настройки расширения: **включите DNS** 2. Настройте обход блокировок. Изначальная цель расширения - выдавать информацию о блокировке для работающих сайтов при активном обходе блокировок. А работа расширения для недоступных сайтов - это побочный эффект из разряда "почему бы и нет", которая в последствии стала официальной фичей. Хотя да, остались проблемы с доступом к текущему ip-адресу у неработающих сайтов. 3. Имейте в виде на будущее, что если в отчете расширения не перечислены ip текущего сайта, то о них ничего не известно и, стало быть, проверка наличия ip сайта в базе не осуществлялась. То есть отчет не полный (потому что проверено только доменное имя).
IRainman commented 5 years ago

Во, я кажется понял в чём проблема. Суть не в DNS. Расширение всё таки делает что то не так, поясняю:

1) если я пробую открыть сайт явно пустив весь трафик своего компьютера через своего локального российского провайдера то не выдаётся ни заглушки, ничего, а сайт просто отваливается по таймауту (так провайдер блокирует подсети), при этом расширение выдаёт зелёненький значок с текстом: www.7-zip.org Сайт доступен. Возраст: 6726 дней. В реестре отсутствует. 159.65.89.65

2) если я возвращаю настройки для обхода и трафик до этой подсети уходит в тоннель и сайт открывается, то расширение всё показывает правильно и значок верного цвета и текст: www.7-zip.org Возраст: 6726 дней. Дата блокировки: 2018-04-16 Заблокирована целая подсеть. 159.65.89.65 (текущий) Блокировка по ip: Подсеть: 159.65.0.0/16 Гос. орган: Генпрокуратура Постановление: 27-31-2018/Ид2971-18

IP как видно не меняется и определяется корректно, но что то с обработкой дальше идёт не так. Возможно расширение не пытается классифицировать что либо если сайт просто отвалился по таймауту (незагрузилось вообще ничего) а ждёт какого то события которое не происходит и классификация не запускается.

В общем бага точно есть :)

MarisKori commented 5 years ago

Какой браузер?

IRainman commented 5 years ago

Firefox 65.0 (32 bit) на Windows 10 64 bit.

MarisKori commented 5 years ago

@IRainman Очень странно.

Можете включить отладку и проверить подробности, пожалуйста?

  1. Откройте список расширений.

  2. Перейдите к отладке расширений

    ![image](https://user-images.githubusercontent.com/18173966/52532978-f0570300-2d3d-11e9-8a6c-90671c124645.png)

  3. Включите отладку расширений и откройте окно отладки

image

  1. В этом окне перейдите в консоль.

  2. Потом переключитесь на сайт и откройте ещё раз подсказку расширения о сайт 7-zip.org

  3. Снова переключитесь на консоль и введите: icon_hint

image

  1. В консоль будет выведен объект со сводной инфой для подсказки. Для наглядности раскройте все ветки объекта (кроме prototype).

  2. Вставьте скриншот сюда (можно копипастом Ctrl+V).
IRainman commented 5 years ago

Unchecked lastError value: Error: Could not establish connection. Receiving end does not exist. background.js:3

sendMessage moz-extension://ef5f024e-9ac4-4463-938f-baa41b4576ee/rea/background.js:3 

Error: Invalid tab ID: 158 ExtensionUtils.jsm Unchecked lastError value: Error: Could not establish connection. Receiving end does not exist. background.js:3

sendMessage moz-extension://ef5f024e-9ac4-4463-938f-baa41b4576ee/rea/background.js:3 

Error: Missing host permission for the tab, and any iframes undefined

rkn

IRainman commented 5 years ago

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