Nginx Secure Download (endereço IP)

1

Estou configurando o nginx para trabalhar com secure_download e conseguiu trabalhar sem problemas.

No entanto, quero modificá-lo e fazer o link de download para um IP específico apenas.

Eu posso conseguir isso usando a variável $remote_addr . No entanto, existem alguns ISPs que eu conheço que mudam o IP com muita frequência (uma vez a cada 2 ou 3 segundos).

Meu ISP também faz isso, por exemplo:
Eu recebi 112.112.11.11 como meu IP agora, depois que eu atualizar, será 112.112.11.17 . Esse comportamento é definido pelo ISP, não pelo meu modem ou roteador e eu conheço mais alguns ISPs que fazem o mesmo.

Agora, com o IP mudando muito rápido, o download seguro não funcionará porque, ao carregar a página, o IP já pode ter mudado, tornando o link de download inválido para o novo IP.

O que eu estou pensando é dizer ao nginx para apenas olhar os 3 primeiros blocos no endereço IP, neste caso 112.112.11.x seria capaz de baixar o mesmo arquivo com o mesmo link de download seguro. Isso seria possível usando nginx conf ?

Quaisquer outras alternativas são bem-vindas.

    
por Ansell Cruz 17.03.2012 / 07:57

2 respostas

2

Você pode adicionar uma nova variável usando a diretiva map que incluirá apenas os três primeiros octetos de $ remote_addr:

map $remote_addr $remote_net {
   default $remote_addr;
    ~^(?<octets>\d+\.\d+\.\d+) $octets;
}

Em seguida, use apenas $ remote_net em vez de $ remote_addr. O padrão deixará a variável sozinha para os clientes ipv6 e terá apenas os três primeiros octetos para os clientes ipv4.

    
por 17.03.2012 / 17:03
0

Você pode interromper o acesso no nível do sistema operacional. Use iptables para permitir o tráfego de entrada nas portas 80 e 443 desse intervalo de hosts e, em seguida, rejeite todos os outros tráfegos nas portas 80 e 443.

    
por 17.03.2012 / 08:00

Tags