Como bloquear acesso de um site para outros países

Publicado por MapexMind em: fevereiro 9, 2012

Hoje me deparei com uma situação. Recebi uma solicitação de um cliente que não queria que o site dele abrisse em outros países; ele queria que somente internautas do Brasil tivessem acesso ao site.

Confesso que nunca tinha enfrentado algo assim. Fui então investigar sobre o caso e descobri uma forma de realizar o bloqueio de acesso para usuários de outros países. Falo “usuários”, pois você também pode impedir que spiders (sistemas de busca) acessem o seu site ou blog.

Esse bloqueio pode ser realizado através da criação de uma lista branca de IPs. Por exemplo, se você deseja que somente internautas do Brasil acessem sua página, será necessário criar uma lista branca de IPs do Brasil. Os IPs que não constarem na lista serão bloqueados.

Como Gerar a Lista de IPs

Ok, mas e agora? Como gerar essa lista? Ela deve ser imensa? Por sorte, descobri um site que gera essa lista automaticamente: Country IP Blocks.

Como Configurar o Bloqueio

Para implementar o bloqueio, você precisa criar um arquivo .htaccess e inserir os ranges de IPs do Brasil com a diretiva allow. Dessa forma, os IPs que não constarem na lista serão bloqueados.

Exemplo: Bloquear o acesso de todos os IPs, exceto 200.234.206.251, 200.243.90.2 e 189.53.70.141

Order deny,allow
deny from all
allow from 200.234.206.251
allow from 200.243.90.2
allow from 189.53.70.141
# deny from all é o mesmo que bloquear para todos, exceto para os que estiverem em 'allow from'

Exemplo: Bloquear o acesso apenas para os IPs 200.243.90.2 e 189.53.70.141

Order allow,deny
deny from 200.243.90.2
deny from 189.53.70.141
allow from all
# allow from all é o mesmo que liberar para todos, exceto para os que estiverem em 'deny from'

Manipulação de Ranges de IPs

Também é possível manipular ranges de IPs, como no exemplo abaixo:

deny from 200.243.90.  # Bloquear acesso de todos os IPs entre 200.243.90.0 e 200.243.90.255
allow from 189.53.     # Liberar acesso de todos os IPs entre 189.53.0.0 e 189.53.255.255
# Obs: Tem o ponto depois do número, pois ele indica ao Apache que se trata de um range

Facilitando o Processo com Country IP Blocks

O site Country IP Blocks permite realizar o bloqueio de forma mais simples via .htaccess. Aqui estão as instruções:

Para Bloquear Países

  1. Acesse Country IP Blocks.
  2. Escolha o(s) país(es) que deseja bloquear.
  3. Selecione a opção “.htaccess Deny”.
  4. Clique em “Create ACL”.
  5. Copie o código gerado e insira no arquivo .htaccess do seu site.

Para Liberar Países

  1. Acesse Country IP Blocks.
  2. Escolha o(s) país(es) que deseja liberar o acesso.
  3. Selecione a opção “.htaccess Allow”.
  4. Clique em “Create ACL”.
  5. Copie o código gerado e insira no arquivo .htaccess do seu site.

Conclusão

Bloquear ou liberar o acesso a países específicos pode ser útil em situações como restrições geográficas ou necessidades comerciais específicas. Usar o arquivo .htaccess para configurar essas regras é uma solução eficiente e flexível.

Se você já utilizou essa funcionalidade ou enfrentou desafios relacionados, compartilhe sua experiência nos comentários!

Loading