ASP net MVC 3 cookie perdre HttpOnly et de Sécuriser les drapeaux
Je suis en train de cookies dans le cadre de mon application mvc:
var cookie = new HttpCookie(CookieName, encryptedData)
{
Path = FormsAuthentication.FormsCookiePath,
Domain = CookieDomain,
Expires = authenticationTicket.Expiration,
HttpOnly = true,
Secure = IsSecure //true
};
response.Cookies.Add(cookie);
Maintenant, si je debug, je vois que sa fonctionne bien, pas de problèmes et sa plus-et c'est bien aussi. Cependant, pour une raison quelconque, quand il atteint réellement le navigateur, il n'y a pas de drapeau HttpOnly ou indicateur de sécurité définie. Donc je suis un peu perplexe...
J'ai essayé le réglage de la HttpOnly et de Sécuriser les drapeaux dans le cookie web.config entrée dans le Système.Web:
<httpCookies httpOnlyCookies="true" requireSSL="true" />
Maintenant ici est la façon dont la réponse semble quand le navigateur reçoit:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Max-Age: 10000
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type, x-requested-with, *
Access-Control-Allow-Origin: http://localhost:34567
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
Set-Cookie: myCookie=53BA8AF84835A81E014B9174329D8543FBB6029B71C463C6FC1305D9F966F28EAA058FE103325C0F10A3012480FB0EF3F6C0BAC4703A6A6B725F383ADA35A5C125A0438FC42CADCB0DAB77953C967E6660E51C4113C6545220A0C2F86230F446D159D523BBE9CA4D9419A67BC44D23B9C4D0974DF2ED66C47EA7308D8E42E1C2280EA6059A23303E3BCBDF28F6BD4A3DFA92FFAB33DDAC8EC05D99310D26FBD6310252156CD28B89386B0D483D6D2E295EF33487E64468655371CC446E0B5DDBF12B3AA8218AF1FA929A98638A1AC729BA60815B86EAD9624ED1787172B585BE4E457C3568AB6EAAF4865E8468D04336FA7340AAC1BA75162FB322D436DC9BF50466F2F0FB3464ECF41C6C1F7001639DFE2AB2AD9CBFB65A292FE5FA42783DF331AA4641432647BA9672FE6D4C15F830E4DF8B38605852BCB15E5B01B862D966E2FD1D620730312982DB8AB4CE5EE0D0E40E6C3F5234DE5EBFA594036D912F07C3798ED429A2552AD6C4B9EC10B90749850CBDEC97F0BF7E2E43CB3991608C5D533B6EA9F8D0A7AD949B42CD3BAA13DEE99C330121B3D868B412A3435FA01C7F223641CFE441A2E07F5DFB8B23F053CBA13F5E1262A07FBFD4EC4BADF9BD5898; expires=Wed, 27-Feb-2013 19:15:24 GMT; path=/
Date: Wed, 27 Feb 2013 18:45:24 GMT
Content-Length: 2
Alors j'ai loupé quelque chose ici? ou est-il quelque chose que je ne suis pas de réglage quelque part que je devrais être? Je suis également à l'aide de la SCRO, car ce cookie est émis à partir d'un serveur web comme un mécanisme d'authentification. Le protocole SSL est activé et est également utilisé via le protocole https pour les appels. Même si je tourne sécuriser les cookies et l'utilisation du protocole http, le drapeau HTTPOnly n'est pas réglé non plus, donc je suis perplexe.
=== Mise à jour ===
Avoir une double vérification, il semble j'ai mal de vous, le HttpOnly réponse est envoyée vers le bas à partir du serveur correctement la première fois, vous recevez le cookie, CEPENDANT! quand un appel ajax puis envoie le cookie au serveur qu'il semble ne pas ajouter le drapeau httponly, ce qui signifie alors le cookie étant jeté autour n'est plus aussi sûr. La partie sécurisée du cookie n'est pas envoyé vers le bas sur la première réponse, mais au moins, cela ajoute un peu plus de contexte à tout cela.
Vous devez vous connecter pour publier un commentaire.
Essayer cette, ressemble à un problème similaire. (Comment puis-je régler l'indicateur de sécurité sur un ASP.NET Cookie de Session?)
Il semble que cela est tout à fait correct comportement, j'ai écrit une autre question, plus précisément, sur les httponly client comportement cookie, et qui a conduit à un autre poste... ce qu'est un trou de lapin.
Quel devrait être le comportement correct de navigateur lors de l'envoi et la réception de cookies httponly via ajax?
De toute façon, qui semble indiquer que le serveur a besoin de garder toute falsification du cookie pour ajouter le HttpOnly comportement.
J'ai fait un httpmodule personnalisé qui vérifie si le cookie en question et de ré-appliquer le comportement souhaité pour le cookie (basés sur les configurations à partir du web.config)