Pergunta

Estou tentando limitar o tráfego do meu site para que as pessoas que tentam capturar grandes quantidades de dados sejam bloqueadas depois de um tempo.Devo fazer isso com base nos IPs das solicitações recebidas.Acredito que tenho a funcionalidade de limitação de IP escrita, mas não sei como posso testá-la.Preciso poder alterar meu endereço IP várias vezes para simular tráfego válido.Também preciso testar mais de 20 IPs diferentes, portanto, uma solução de proxy para cada um não funcionará para mim.

Estou testando o código em minha máquina local (executando Ubuntu) para poder alterar as configurações do servidor (Apache) se necessário para este teste.

Estou atrás de uma rede corporativa, portanto não posso alterar as configurações de endereço MAC/ARP para "reatribuir" um novo IP.Eu esperava algum tipo de alteração de IP do host local, para poder aproveitar o fato de que o servidor e o cliente eram a mesma máquina.

Além disso, eu estava tentando evitar alterar o código antes de ele ser implementado nos servidores de produção, mas essa pode ser a melhor maneira de fazer isso.

Como posso configurar isso?

Foi útil?

Solução

Bem, o que você poderia fazer é, em vez de verificar o IP, fazer algo assim:

$ip = '1337.1337.1337.1337';

Ao invés de:

$ip = $_SERVER['REMOTE_ADDR']

E depois faça seu código de verificação de IP.

Então, quando terminar, você pode fazer com que seu código de variável de $ IP se pareça com o seguinte:

//$ip = '1337.1337.1337.1337';
$ip = $_SERVER['REMOTE_ADDR']

Então você pode facilmente ligar e desligar o "Switch Debug"

EDITAR:

Ou até mesmo fazer a dinâmica de IP:

$ips = Array('192.168.1.220', '120.843.592.86', '256.865.463.563');
$ip = $ips[rand(1,count($ips)-1)];

Outras dicas

Você pode fazer isso facilmente executando o seguinte comando no Linux:

ifconfig eth0: 0 127.0.0.2
ifconfig eth0: 1 127.0.0.3
etc ... (criando interfaces locais falsas)

Você pode precisar configurar o Apache para ouvir esses IPs se não estiver ouvindo em 0.0.0.0 (todas as interfaces), então você pode acessar diretamente esses IPs.

Se você quiser usar outros IPs, também pode fazer isso facilmente, mas lembre -se de removê -los assim que seus testes estiverem feitos.

Isso funcionará apenas da sua máquina local, para sua máquina local.

Existem muitas maneiras de testar isso. A maneira mais fácil da IMO seria criar uma lista de entradas ARP, onde os endereços IP você está representando um ponto para o endereço MAC do servidor. Você pode escrever um aplicativo simples que defina o endereço SRC para cada um dos endereços IP personificados, conectar e enviar qualquer solicitação HTTP desejar. O servidor deve responder muito bem.

Não tenho certeza se é isso que você está procurando, mas tive que falsificar meu endereço MAC para que eu pudesse obter um novo IP para contornar uma cota de download na minha universidade. Alterar o Mac resultou em um novo IP. Existe um programa nos repositórios padrão do Ubuntu chamado "MacChanger", basta executar isso com a opção correta ("-r" para aleatoriamente) e depois especificar o dispositivo. igual a.

sudo macchanger -r eth0

A rede deve ser desativada quando você faz isso. Você pode fazer isso clicando com o botão direito do mouse no ícone de rede e desmarcando a caixa "Ativar rede".

Você deseja considerar fazer isso no nível do firewall (se não for o firewall da borda corporativa, então um firewall SW no seu host).Existem muitas situações em que um host abusivo ainda pode derrubar ou afetar o desempenho do seu site se você os limitar apenas no nível do aplicativo.Eles ainda estão consumindo soquetes e threads de trabalho do servidor web, mesmo que você os rejeite.Você pode até ter algum código que tenha algum gasto antes da verificação do IP.Na verdade, tudo depende de quão leve é ​​o seu aplicativo, mas uma coisa é certa: um firewall, seja hardware ou software, pode bloquear clientes indisciplinados com muito mais eficiência do que o seu aplicativo.

Esta resposta provavelmente é exagerada para este aplicativo, mas eu gosto de usar tcpdump / libpcap, winpcap, e soquetes crus para gerar tráfego. Você não apenas tem um grande controle sobre o volume que está indo para o seu aplicativo, como também aprende muito sobre o que pode esperar que as configurações de firewall/filtro de trânsito façam por você e que tipos de tráfego estão sendo bloqueados que você não esperava (ou que você não quer bloquear).

Use a função aleatória e defina limite para RAND (0,255) e a string concat no formato IP. Sempre que você ligar, você receberá um novo endereço IP

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