Alerta RKN - banco de dados Roskomnadzor no seu navegador

Como todo mundo, eu uso uma das maneiras simples de contornar as fechaduras, das quais o mar está agora. Todos os sites são abertos sem problemas e freios. Mas recentemente (duas semanas atrás) eu tive uma pergunta: quais sites estão realmente bloqueados daqueles que abrem e quais não? Verificar cada site manualmente no site oficial da ILV não é uma opção, embora seja a maneira mais confiável. Naturalmente, procurei no Google ferramentas adequadas, mas, para minha grande surpresa, não encontrei nada.

Idéia


Assim, surgiu a ideia de fazer uma extensão ( código aberto ), que verificará cada site quanto à conformidade com as entradas no banco de dados ILV. No começo, era simples, verificando apenas o domínio. Agora, ele até mostra se o site foi bloqueado ilegalmente (ficou em distribuição). Por exemplo, reactos.org ou 7-zip.org (no momento da leitura do artigo, eles já podem estar desbloqueados). Em geral, desde o início da guerra com o Telegram, muitas redes ainda estão em constante bloqueio, periodicamente essa lista muda de acordo com leis desconhecidas.

Como a extensão funciona


  • Faça o download do banco de dados ILV e armazene-o localmente.
  • Na guia atual, verifica o URL (se estiver no banco de dados).
  • Corta um domínio de uma URL e verifica se há um domínio no banco de dados.
  • Verifica o endereço IP atual no banco de dados no qual o site atual está carregado.
  • Verifica se o endereço IP pertence a sub-redes bloqueadas.
  • Mostra um relatório na forma de um ícone. Se você clicar nele, informações um pouco mais detalhadas.

Isso é tudo, sem mágica. A verificação de domínio está sempre disponível, mesmo que o site não seja carregado, bloqueado, substituído etc. - porque a barra de endereços é analisada, ou seja, o URL digitado na barra de endereços ou que aparece lá. Todos os problemas estão conectados apenas com a verificação de IP.

Mas e se o proxy estiver no navegador?


Se o proxy estiver configurado no navegador, a extensão funcionará em toda a extensão, porque tendo problemas com a determinação do site IP atual . Em vez disso, o IP do servidor proxy é determinado. É apenas sobre o proxy no próprio navegador, e não sobre a VPN e outras soluções alternativas. A propósito, para determinar o IP, precisávamos dos direitos do webRequest (acesso aos dados). Também o ip não é detectado no navegador Tor (infelizmente).

E se o site estiver bloqueado pelo provedor?


Outra dificuldade técnica é determinar o IP atual quando o site não está disponível (presumivelmente bloqueado, mas o desvio dos bloqueios não está configurado). Nesse caso, o navegador não fornece informações sobre o endereço IP. E precisamos exatamente do ip no qual o navegador está tentando estabelecer uma conexão - e é impossível determinar isso, infelizmente. Mas a verificação por URL e domínio funciona corretamente.

Mas e se o site simplesmente mentir?


Nesse caso, existe uma função para verificar a disponibilidade do site - ele funciona independentemente do DNS e do bloqueio (enquanto o serviço de hospedagem correspondente funciona sem surpresas). Depois de instalar a extensão, você precisa habilitá-la nas configurações. Mas a definição de IP falha pelo mesmo motivo que no parágrafo anterior. Existe uma idéia para obter informações de IP a partir daí, mas pode ser diferente da sua.

E se o provedor redirecionar o DNS?


Se o provedor tiver um bloqueio no nível do DNS, a extensão receberá um IP falso atual do site e não o saberá. E vice-versa, se você escrever o ip necessário no arquivo hosts (ou mesmo se tiver seu próprio servidor DNS), eles estarão no relatório pop-up. Ao mesmo tempo, a verificação por URL e domínio funciona corretamente, porque eles são retirados da barra de endereço no navegador.

Tentando resolver problemas de ip


Como uma meia medida para solucionar esses problemas, a extensão realiza uma consulta DNS e determina todos os endereços IP do site, bem como seu status no banco de dados ILV. Ao mesmo tempo, a extensão não sabe exatamente qual dos vários ip está sendo usado atualmente para acessar o site que está sendo verificado. Portanto, se pelo menos um ip estiver bloqueado, o ramal tocará o alarme e mudará a cor do ícone para vermelho.

Para obter registros DNS, você deve usar um serviço externo via HTTP-DNS , porque o próprio navegador não permite a resolução de endereços. Mas isso é bom, porque Os provedores não bloqueiam ou redirecionam essas solicitações. A confiabilidade das informações é alta. Você pode usar o DNS do Google ou Cloudflare , e também o usuário brzsmg hospedou o eterno DNS gratuito, pelo qual ele agradece.

Onde obter uma nova base de ILV?


Obviamente, uma busca separada era encontrar a base de ILV mais adequada. O fato é que o próprio ILV não mantém a base em domínio público. Em vez disso, ele sugere que os provedores usem uma assinatura digital para acessar o banco de dados. Eu não tinha um EDS extra em mãos. Enquanto isso, a ILV recomenda que os provedores atualizem o banco de dados uma vez por hora . E algumas atualizações "urgentes" do banco de dados ocorrem com mais frequência . Ou seja, uma trava de carpete pode tocar nos principais recursos (ou nos seus) por apenas algumas horas e depois desaparecer, como se nada tivesse acontecido. O mais aceitável foi o arquivo atualizado com freqüência no github . Graças às boas pessoas!

Esboço do provedor


Situações em que o stub do provedor é exibido, a extensão reconhece. Ele lembra as informações sobre a página da qual houve um redirecionamento para o stub e mostra informações sobre o site, não o stub. Agora suportado: Rostelecom, MTS, Beeline, Iota, TTK, Dom.ru. Se você tiver um stub especial do provedor, poderá especificá-lo nas configurações e ele será reconhecido (não será considerado como um site).

Conclusão


Que outra lista de desejos adicionar? Escreva. Quanto a mim, a extensão tem uma aparência finalizada. Depois, há a correção de pequenos erros uma vez por ano ( se você encontrar ).

Não posso dizer nada sobre o futuro do RKN Alert, porque ele está vinculado ao trabalho de serviços externos e também depende da disponibilidade do banco de dados em domínio público. Mas enquanto estou vivo, monitorei a situação. Sempre há uma saída, eu acho.

Obrigado a todos que ajudam! Bom para todos!

Source: https://habr.com/ru/post/pt425831/


All Articles