variável de mudança de proxy reverso NGINX

1

Estamos tentando usar o NGINX como um proxy reverso para filtrar as solicitações de URL. Basicamente, se você não digitar o URL correto, você não terá acesso.

Aqui está a configuração do meu site do servidor:

server {

    listen 192.168.1.63:443;

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl.crt;
    ssl_certificate_key /etc/nginx/ssl/ssl.key;

    server_name domain.test.com;

    set $upstream 192.168.1.10;

    location ~* /(domain1|domain2|domain3|domain4|%7FVIC) {
       proxy_set_header X-Real-IP  $remote_addr;
       proxy_set_header X-Forwarded-For $remote_addr;
       proxy_set_header Host $host;
           proxy_pass http://$upstream;
       }
}

Tudo funciona bem, exceto pelo %7FVIC . O aplicativo que estamos tentando proteger, os clientes precisam acessar uma variável / algo na raiz do site. Então o URL é: https://domain.test.com/%7FVIC01663918

Quando vejo os logs, parece que o NGINX está interceptando a variável e a reescrevendo. Aqui está o trecho dos registros de erros:

2018/06/18 14:57:30 [error] 11647#11647: *16 open() "/usr/share/nginx/htmlVIC01663918" failed (2: No such file or directory), client: xx.xx.xx.xx, server: test.domain.com, request: "POST /%7FVIC01663918 HTTP/1.1", host: "test.domain.com", referrer: "https://test/domain.com/domain1/"

Parece que está mudando o %7FVIC para /htmlVIC01663918

Então, como podemos fazer com que o NGINX ignore apenas essa variável ou ignore e pare de alterá-la?

    
por MtNetwork 18.06.2018 / 21:44

1 resposta

0

O %7F é uma representação codificada por URL de um código de caractere 7Fh. nginx irá decodificá-lo antes de processar o pedido. Você pode inserir um caractere 7Fh na expressão location da sua expressão regular, mas deve usar a sintaxe expressão regular em vez da sintaxe da URL (por exemplo, \x7F ).

Por exemplo:

location ~* /(domain1|domain2|domain3|domain4|\x7FVIC) { ... } 
    
por 18.06.2018 / 23:24

Tags