Expressão regular para restringir URL em HAProxy

1

Eu tinha restringido com êxito um URL em meu aplicativo da Web para determinado IP confiável, usando a configuração abaixo mencionada em haproxy config

acl trusted-ip src -f /etc/haproxy/whitelist.lst    
acl protected-page url /abc /abc/    
acl allowed-page url /abc/api/
http-request deny if protected-page !allowed-page !trusted-ip

Eu quero que todos os usuários acessem a URL "/ abc / api", enquanto "/ abc" estará acessível apenas para o IP confiável. O problema aqui é que se alguém do IP não confiável entrar com "/ abc? Something" a URL "/ abc" abrir, para evitar isso, modifiquei a configuração para

acl trusted-ip src -f /etc/haproxy/whitelist.lst
acl protected-page url_reg ^(?!\/abc\/api).*$
http-request deny if protected-page !trusted-ip

Agora consegui resolver o problema mencionado acima, mas o "/ abc / api" não está acessível a ninguém. Qualquer ajuda será apreciada.

    
por Arjun K R 30.05.2018 / 14:36

1 resposta

0

Use path em vez de url

This extracts the request's URL path, which starts at the first slash and ends before the question mark (without the host part). A typical use is with prefetch-capable caches, and with portals which need to aggregate multiple information from databases and keep them in caches. Note that with outgoing caches, it would be wiser to use "url" instead. With ACLs, it's typically used to match exact file names (eg: "/login.php"), or directory parts using the derivative forms. See also the "url" and "base" fetch methods.

ACL derivatives :
  path     : exact string match
  path_beg : prefix match
  path_dir : subdir match
  path_dom : domain match
  path_end : suffix match
  path_len : length match
  path_reg : regex match
  path_sub : substring match
    
por 31.05.2018 / 02:08

Tags