RKN Alert — база Роскомнадзора у вас в браузере

i1klmvcs9azzyrzvqany1ypbbj4.png Как и все, я пользуюсь одним из простых способов обхода блокировок, коих сейчас море. Все сайты открываются без проблем и тормозов. Но с недавних пор (2 недели назад) у меня встал вопрос:, а какие сайты на самом деле заблокированы из тех, что открываются, а какие нет? Каждый сайт проверять вручную на официальном сайте РКН — не вариант, хоть это и самый надёжный способ. Естественно, я пошёл гуглить подходящие инструменты, но к великому удивлению ничего не нашёл.
u3mqdg1qgetgkvnabkvoafewdkm.pngТак родилась идея сделать расширение, которое будет проверять каждый сайт на соответствие записям в базе РКН. Сначала оно было простое, проверяло только домен. Сейчас оно даже показывает, был ли сайт заблокирован неправомерно (попал под раздачу).

Правда, если в браузере настроен прокси, то расширение работает в пол силы, т.к. испытывает проблемы с определением ip сайта. Кстати, для определения ip понадобились права webRequest (доступ к данным). Также ip не определяется из браузера Tor (к сожалению).

Другая техническая трудность — это определение ip, когда сайт недоступен (предположительно заблокирован, а обход блокировок не настроен). В этом случае браузер не предоставляет информацию. А нам нужен именно тот ip, по которому браузер пытается установить соединение — и его определить невозможно. В качестве полумеры расширение осуществляет DNS запрос и определяет все ip сайта, а также их статус нахождения в базе РКН. Для получения DNS записей приходится использовать внешний сервис, потому что сам браузер не позволяет резолвить адреса. Сервис, кстати, бесплатен и имеет лимиты, так что вполне возможно отвалится в будущем.

И, конечно же, отдельный квест был поиск наиболее адекватной базы РКН. Дело в том, что сам РКН не держит базу в открытом доступе. Вместо этого он предлагает провайдерам использовать цифровую подпись для доступа к базе. У меня лишней ЭЦП под рукой не оказалось. Между тем, РКН рекомендует провайдерам обновлять базу раз в час. То есть ковровая блокировка может задеть ключевые (или ваши) ресурсы всего на пару часов, а потом исчезнуть, как ни в чём не бывало. Наиболее приемлемым оказался часто обновляемый файл на github. Спасибо добрым людям!

Будущее RKN Alert вызывает смутные сомнения, потому что постоянное массовое скачивание тяжелых файлов может не понравится серверам, на которых они расположены. Это напоминает DDoS атаку. Конечно, рано об этом говорить, но всё же.

Всем приятного дня!

fkbc5u0hht27ck_km82e4mj8rzw.png

P.S. Не смотрите код! Он ужасен! Всё же я не профессионал.

© Habrahabr.ru