Pergunta

Por razões que eu não vou entrar, quero banir uma companhia inteira de acessar meu site. Verificando o nome do host remoto em php usando gethostbyaddr () funciona, mas isto atrasa o carregamento da página muito. As grandes organizações (ex. hp.com ou microsoft.com) muitas vezes têm blocos de endereços IP. de qualquer maneira é lá eu obter a lista completa, ou eu estou preso com o lento busca de DNS reverso? Se assim for, posso acelerá-lo?

Edit: Ok, agora eu sei que eu posso usar o arquivo .htaccess para proibir um intervalo. Agora, como posso descobrir o que esse intervalo deve ser para uma determinada organização?

Foi útil?

Solução

Como cerca de um .htaccess:

Deny from x.x.x.x

Se você precisa de negar uma palavra a dizer intervalo: 192.168.0.x, em seguida, você usaria

Deny from 192.168.0

eo mesmo se aplica para nomes de host:

Deny from sub.domain.tld

ou se você quer uma solução PHP

$ips = array('1.1.1.1', '2.2.2.2', '3.3.3.3');
if(in_array($_SERVER['REMOTE_ADDR'])){die();}

Para mais informações sobre o método htaccess ver desta página .

Agora, para determinar o intervalo vai ser difícil, a maioria das empresas (a menos que eles são grandes corperate) vão ter uma dinâmica IP assim como você e eu.
Este é um problema que eu tive que lidar com antes e a melhor coisa é ou proibir o nome do host, ou toda a gama, por exemplo, se eles estão em 192.168.0.123 então proibir 192.168.0.123, infelizmente você está indo para obter alguns pessoas inocentes com um ou outro método.

Outras dicas

Se você está praticando webhosting seguro, então você tem um firewall. Usá-lo.

As grandes empresas têm blocos de endereços IP, mas as empresas ainda menores raramente mudam seu IP. Portanto, há uma maneira fácil de fazer isso sem reduzir seu desempenho:

Todo mês fazer uma pesquisa inversa em todos os IPs no seu log e, em seguida, colocar todos os IPs usados ??por essa empresa no seu firewall como negar.

Depois de algum tempo yo'll começar a ver se eles têm endereços dinâmicos ou não. Se o fizerem, então você pode ter que fazer pesquisas inversas para cada tentativa de conexão, mas a menos que eles são uma pequena empresa que você não deveria ter que se preocupar com isso.

continuar a usar gethostbyaddr(), mas por trás de um cache. Você só deve ter que resolvê-lo uma vez por endereço IP e, em seguida, não seria um problema significativo desempenho. Se você quiser, nobre o cache de seus logs do servidor para que os usuários que retornam não vai mesmo bater a desaceleração do tempo um.

Se o seu objetivo em fazer isso é torná-lo um pouco inconveniente para as pessoas de uma empresa para acessar seu site, siga os conselhos acima. Mas você não será capaz de garantir completamente que você está bloqueando todos os acessos, porque eles poderiam ser sempre passar por um proxy. E se é acessível para o resto do público, você vai ter que se preocupar com archive.org, procurar caches do motor, etc.

Provavelmente não é a resposta que você está procurando, mas é preciso.

Dê uma olhada em .htaccess se você estiver usando apache: .htaccess tutorial

Pesquisa

Em primeiro lugar para a empresa em whois.net . Se você sabe que eles são apenas um domínio, faça uma pesquisa. Caso contrário, procurar domínios que possuem por palavra-chave.

Você pode encontrar a página intervalos de IP atribuído à empresa através de consultas Whois, e, em seguida, construir a sua regra de negação (s) em conformidade.

Eu sei WikiScanner permite procurar uma empresa ou outra organização, em seguida, lista as faixas de endereços IP que lhes pertencem. Apenas como exemplo, aqui está todos os endereços IP que pertencem ao Google , pelo menos de acordo com WikiScanner.

De acordo com a HowStuffWorks , eles usam algo chamado "IP2Location".

Você tem acesso à configuração do servidor real? Se assim for, dependendo do servidor que você poderia fazê-lo na configuração.

esta discussão para algumas informações que podem ser úteis.

http://en.wikipedia.org/wiki/Rwhois telnet rwhois.arin.net 4321

Este utilizado para trabalho.

A carga não deve ser colocado no servidor web, você deve colocá-lo no firewall.

Note que o uso das técnicas acima, nunca será possível proibir completamente a empresa específica de acessar seu site. Ele ainda será possível para eles para usar servidores proxy ou olhar para o seu site a partir de casa.

Se você realmente quiser controlar quem tem acesso, você só deve permitir que usuários autenticados e autorizados a acessar seu site.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top