web-dev-qa-db-fra.com

Cookies et ASP.NET Core

Cela pourrait être une question simple, j'espère que c'est au moins.

J'ai commencé à examiner la version candidate d'ASP.NET Core et je constate qu'une grande partie de la configuration a été déplacée de l'ancien fichier web.config vers des fichiers structurés JSON (ainsi que XML et tout autre middleware que vous pourriez vouloir écrire vous-même).
La seule chose que je n’ai pas encore comprise, est quelque chose de si simple dans l’ancienne approche web.config: sécuriser certains des composants de base de votre site, comme les cookies.

Auparavant, nous configurions secure, httpOnly et ainsi de suite dans web.config et lorsqu'il s'agissait de déployer un joli petit fichier de transformation modifierait les valeurs pour nous et cracherait le nouveau fichier finalement. Après avoir lu un peu, il semble que web.config soit pratiquement mort, alors comment pouvons-nous obtenir les mêmes résultats?

Je sais que nous pouvons charger différents fichiers de configuration selon que certaines variables, telles que environment, sont définies sur DEV, STAGING, PRODUCTION, etc., mais cela semble simplement remplacer les transformations par quelque chose qui est une transformation à toutes fins utiles sauf dans il est réellement chargé?

Ai-je oublié quelque chose ou ai-je réussi à me mettre dans le pétrin?

9
Jak Hammond

Pour un cookie général créé manuellement dans votre application, vous contrôlez les indicateurs de sécurité lors de sa création - par exemple:

Response.Cookies.Append(
    "COOKIE_NAME",
    "COOKIE_VALUE",
    new CookieOptions()
    {
        Path = "/",
        HttpOnly = false,
        Secure = false
    }
);

Dans ce cas, définir HttpOnly sur true empêcherait JS côté client d'accéder à la valeur de cookie, et définir Secure sur true ne permettrait que le cookie soit servi/reçu via HTTPS.

Aucune valeur par défaut n'est appliquée lorsque vous ajoutez des cookies à la réponse, comme indiqué dans le code source de la classe ResponseCookies .

Pour les divers middlewares qui créent et utilisent leurs propres cookies (comme le middleware de session que vous avez mentionné dans votre réponse), ils peuvent avoir leurs propres options de configuration qui contrôleront ces indicateurs pour les cookies qu'ils créent eux-mêmes, mais cela ne fera aucune différence. aux cookies que vous créez ailleurs dans votre application.

13
Mark Hughes

Ok, j'ai compris, il me faut toujours me rappeler que la plupart des choses dans .NET5 sont maintenant activées, y compris des choses comme Session, où résident les cookies, lisant les docs , j'ai finalement trouvé ce dont j'avais besoin. activer les cookies et les configurer.

0
Jak Hammond