ja ustawiania ciasteczka jako część mojego mvc aplikacji:ASP MVC 3 cookies utraty HttpOnly i bezpieczne flagi
var cookie = new HttpCookie(CookieName, encryptedData)
{
Path = FormsAuthentication.FormsCookiePath,
Domain = CookieDomain,
Expires = authenticationTicket.Expiration,
HttpOnly = true,
Secure = IsSecure // true
};
response.Cookies.Add(cookie);
Teraz jeśli debugować widzę, że jej wszystko działa bez zarzutu, nie ma problemów, a jego dodatkową i to dobrze także. Jednak z jakiegoś powodu, kiedy faktycznie dotrze do przeglądarki, nie ma ustawionej flagi HttpOnly ani flagi bezpieczeństwa. Więc jestem nieco zaskoczony ...
Próbowałem ustawienie HttpOnly i bezpieczne flagi w wejściu cookies web.config pod system.Web:
<httpCookies httpOnlyCookies="true" requireSSL="true" />
Teraz tutaj jest jak reakcja wygląda gdy przeglądarka odbiera:
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
Więc czegoś tu brakuje? czy jest coś, czego nie planuję, gdzie powinienem być? Używam także CORS, ponieważ ten plik cookie jest wydany z serwera sieciowego jako mechanizm uwierzytelniania. Protokół SSL jest włączony i jest również używany przez protokół HTTPS dla połączeń. Nawet jeśli wyłączę bezpieczne pliki cookie i użyję http, flaga HTTPOnly również nie jest ustawiona, więc jestem zaskoczony.
=== Aktualizacja ===
Po dwukrotnie sprawdzane wydaje mi misinformed Ci odpowiedź HttpOnly jest wysyłany w dół z serwera poprawnie po raz pierwszy otrzymasz cookie, JEDNAK! kiedy wywołanie ajaxa wysyła ciasteczko na serwer, wydaje się, że nie dodaje flagi httponly, co oznacza, że ciasteczko, które jest wyrzucane, nie jest już tak bezpieczne. Bezpieczna część pliku cookie nie jest wysyłana przy pierwszej odpowiedzi, ale przynajmniej dodaje do tego trochę więcej kontekstu.
Dzięki dadzą mu szansę, to przyzwyczajenie wpływać na HttpOnly? czy to musi być ustawione na formularzach lub coś takiego? Uważam, że to dziwne, jeśli to działa tak jak RĘCZNIE ustawienie tego na plik cookie, więc nie wiem, dlaczego nie zaakceptuje wprowadzonych danych. – Grofit
Format bitów nie działa, po prostu mówi mi, że plik web.config jest nieprawidłowy, ale dokumentacja nie ładuje się na MSDN, więc nie do końca wiadomo, czy są jakieś wymagane elementy potomne. – Grofit
Chociaż nie była to odpowiedź na moje pytanie, jestem pewien, że większość osób przyjeżdżających tutaj będzie potrzebować rozwiązania, które wymieniłeś powyżej, więc oznaczy Cię jako odpowiedź. – Grofit