Osticket: Jeton CSRF cassé lorsqu'il est derrière un proxy inverse

Créé le 28 mars 2014  ·  6Commentaires  ·  Source: osTicket/osTicket

Essayer d'utiliser osTicket (v1.8.1-dpr) derrière un proxy inverse, obtenir de manière fiable

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

la cause semble être le javascript osticket générant le jeton basé sur l'adresse IP du navigateur, qui diffère bien sûr de l'adresse IP du proxy inverse lorsque le jeton est vérifié côté serveur.

Le proxy inverse est une instance Apache sur ec2

question

Commentaire le plus utile

Je sais que ce message date de plus d'un an, mais il est apparu plusieurs fois en essayant de configurer mon proxy inverse avec osTicket. J'utilise NginX comme proxy inverse (je sais, non pris en charge, etc.) avec quelques ajustements, j'ai pu obtenir l'erreur "Jeton CSRF invalide".

dans mon bloc de localisation, j'avais besoin d'ajouter quelques paramètres d'en-tête :

 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>;
        }

Le pass_header était ce qui semblait le faire fonctionner, mais les autres paramètres garantiront que votre serveur reçoit la bonne adresse IP. Je pense que vous pouvez également définir ces paramètres dans le serveur ou le bloc http, mais cela a répondu à mes besoins.

Tous les 6 commentaires

Votre proxy inverse devrait envoyer X-Forwarded-For . Est-ce que c'est?

Oui, le proxy inverse définit X-Forwarded-For sur la bonne adresse. Le client est derrière un NAT, et donc le Javascript pourrait potentiellement obtenir une adresse RFC1918, s'il obtient des adresses d'interface liées (on ne sait pas si cela se produit).

Pouvez-vous vérifier les paramètres des cookies entre le serveur proxy (où s'exécute osTicket et le client) ? Vérifiez le domaine du cookie et le chemin du cookie renvoyé et assurez-vous qu'aucun des serveurs intermédiaires ne modifie le cookie ou les paramètres de cookie.

Je vais vérifier, mais c'est peut-être là que réside le problème (le domaine hôte interne et le domaine proxy sont très différents). Je mettrai à jour dans quelques heures.

Je sais que ce message date de plus d'un an, mais il est apparu plusieurs fois en essayant de configurer mon proxy inverse avec osTicket. J'utilise NginX comme proxy inverse (je sais, non pris en charge, etc.) avec quelques ajustements, j'ai pu obtenir l'erreur "Jeton CSRF invalide".

dans mon bloc de localisation, j'avais besoin d'ajouter quelques paramètres d'en-tête :

 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>;
        }

Le pass_header était ce qui semblait le faire fonctionner, mais les autres paramètres garantiront que votre serveur reçoit la bonne adresse IP. Je pense que vous pouvez également définir ces paramètres dans le serveur ou le bloc http, mais cela a répondu à mes besoins.

@webbe, nous ne prenons pas officiellement en charge nginx en tant que serveur pour osTicket. Vous pouvez utiliser ce que vous voulez pour le proxy inverse. Personnellement, je préfère HAProxy. Merci d'avoir posté vos informations de configuration, et heureux que votre configuration fonctionne.

Cette page vous a été utile?
0 / 5 - 0 notes