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
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.
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 :
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.