Maison  >  Article  >  Opération et maintenance  >  Comment configurer le client nginx pour enregistrer les cookies

Comment configurer le client nginx pour enregistrer les cookies

WBOY
WBOYavant
2023-05-28 17:25:251634parcourir

Problème

Je déploie un service d'arrière-plan dotnet core laissé par mes prédécesseurs. J'ai soigneusement modifié le code frontal sur le serveur et changé l'adresse de requête ajax en localhost. Les données de connexion et de demande sont normales. Cependant, j'ai remplacé localhost par une adresse IP et j'ai constaté que la connexion était normale et que le cookie avait été renvoyé. Cependant, lors de la vérification de l'état de connexion (envoi d'une demande en arrière-plan et vérification du cookie transporté), une erreur s'est produite. 401

. Ni le front-end ni le back-end de ce programme ne m'appartiennent. Je l'ai écrit et j'ai demandé au développement front-end :

Comment configurer le client nginx pour enregistrer les cookies

Bien que le cookie ait été renvoyé avec succès, l'en-tête de la demande de cookie n'a pas été transporté dans le fichier. demande ultérieure. C'était étrange, puis j'ai découvert :

Comment configurer le client nginx pour enregistrer les cookies

Selon les invites, le navigateur a voulu enregistrer le cookie, mais Set-Cookie a été bloqué en raison du paramètre Secure.

Comment configurer le client nginx pour enregistrer les cookies

Résolu

Ensuite, je supprimerai Secure !
En même temps, samesite=none doit également être modifié, car samesite=none doit être utilisé avec secure Vous pouvez changer la valeur en strict

Les règles strictes sont les plus strictes, et il est totalement interdit d'en envoyer à des tiers. -cookies de fête, quelle que soit la situation d'accès entre sites. Le cookie ne sera porté que si l'URL de la page courante correspond à la cible demandée.

Paramètres dans nginx :

proxy_cookie_flags ~ nosecure samesite=strict;

Parlons un peu plus

L'attribut cookie secure n'est accessible que sous https. Je migre de l'environnement https vers l'environnement http (cette méthode inverse non sécurisée n'est toujours pas nécessaire pour apprendre) .

Le nginx que j'ai configuré est le suivant, mais l'utilisation réelle doit être prise en compte pour la situation spécifique :

 	location /rf/ {
        proxy_pass  http://localhost:5001/;
	    proxy_set_header Host $host;
	    proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
      
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

	    proxy_cookie_path  / /;
	    proxy_set_header   Cookie $http_cookie;
 	    proxy_cookie_flags ~ nosecure samesite=strict;
   }

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer