Osticket: Token CSRF quebrado quando atrás de proxy reverso

Criado em 28 mar. 2014  ·  6Comentários  ·  Fonte: osTicket/osTicket

Tentando usar osTicket (v1.8.1-dpr) atrás de um proxy reverso, obtendo de forma confiável

 Invalid CSRF Token __CSRFToken__
Invalid CSRF token [b4cab350cfce13ee10a8cd27445e7f4466db039e] on
(redacted)

a causa parece ser o osticket javascript gerando o token baseado no IP do navegador, o que obviamente difere do IP do proxy reverso quando o token é verificado no lado do servidor.

O proxy reverso é uma instância do Apache em ec2

question

Comentários muito úteis

Eu sei que este post tem mais de um ano, mas apareceu várias vezes enquanto tentava configurar meu proxy reverso com osTicket. Estou usando o NginX como meu proxy reverso (eu sei, não é compatível, etc etc) com alguns ajustes, consegui passar o erro "Token CSRF inválido".

no meu bloco de localização, precisei adicionar algumas configurações de cabeçalho:

 location / {
            proxy_set_header        Host            $host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass_header       Set-Cookie;
            proxy_pass <Backend osTicket location>;
        }

O pass_header era o que parecia funcionar, mas as outras configurações farão com que seu servidor receba o endereço IP correto. Acredito que você também poderia definir essas configurações no servidor ou no bloco http, mas isso atendeu às minhas necessidades.

Todos 6 comentários

Seu proxy reverso deve enviar X-Forwarded-For . É mesmo?

Sim, o proxy reverso está configurando X-Forwarded-For para o endereço correto. O cliente está atrás de um NAT e, portanto, o Javascript pode estar recebendo um endereço RFC1918, se estiver obtendo endereços de interface vinculados (não está claro se isso está acontecendo).

Você pode verificar as configurações de cookies entre o servidor de proxies (onde o osTicket é executado e o cliente)? Verifique o domínio do cookie e o caminho do cookie retornado e certifique-se de que nenhum dos servidores intermediários esteja mexendo com o cookie ou as configurações de cookie.

Vou verificar, mas pode muito bem ser aí que está o problema (o domínio do host interno e o domínio com proxy são muito diferentes). Vou atualizar em algumas horas.

Eu sei que este post tem mais de um ano, mas apareceu várias vezes enquanto tentava configurar meu proxy reverso com osTicket. Estou usando o NginX como meu proxy reverso (eu sei, não é compatível, etc etc) com alguns ajustes, consegui passar o erro "Token CSRF inválido".

no meu bloco de localização, precisei adicionar algumas configurações de cabeçalho:

 location / {
            proxy_set_header        Host            $host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass_header       Set-Cookie;
            proxy_pass <Backend osTicket location>;
        }

O pass_header era o que parecia funcionar, mas as outras configurações farão com que seu servidor receba o endereço IP correto. Acredito que você também poderia definir essas configurações no servidor ou no bloco http, mas isso atendeu às minhas necessidades.

@webbe , oficialmente, não oferecemos suporte ao nginx como servidor para osTicket. Você pode usar o que quiser para o proxy reverso. Pessoalmente, prefiro o HAProxy. Obrigado por postar suas informações de configuração e fico feliz por você ter feito a configuração funcionar.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

markus4000 picture markus4000  ·  3Comentários

lifeofguenter picture lifeofguenter  ·  4Comentários

F3000 picture F3000  ·  5Comentários

cervedgroup picture cervedgroup  ·  5Comentários

rob-tv picture rob-tv  ·  3Comentários