내 MVC 응용 프로그램의 일부로 쿠키를 설정하고있다 : 이제ASP MVC 3 쿠키 잃고 Http 만 및 보안 플래그
var cookie = new HttpCookie(CookieName, encryptedData)
{
Path = FormsAuthentication.FormsCookiePath,
Domain = CookieDomain,
Expires = authenticationTicket.Expiration,
HttpOnly = true,
Secure = IsSecure // true
};
response.Cookies.Add(cookie);
내가 디버깅하면 나는 그것 모두가 잘 작동하지 아무런 문제와 추가 된 미세 이잖아 볼 너무. 그러나 실제로 브라우저에 도달 할 때 어떤 이유로 HttpOnly 플래그 나 보안 플래그가 설정되지 않습니다. 이제 여기
<httpCookies httpOnlyCookies="true" requireSSL="true" />
는 응답이 때 브라우저 모습입니다 : 그래서
나는 System.Web 아래에있는 쿠키의 web.config 항목에 Http 만 및 보안 플래그를 설정 시도 ... 조금 당황 메신저 그것을받습니다 :
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
그래서 여기에 뭔가가 빠졌습니까? 또는 내가 있어야하는 어딘가에 설정하고 있지 않은 무언가가 있습니까? 이 쿠키는 인증 메커니즘으로 웹 서버에서 발행되기 때문에 CORS도 사용하고 있습니다. SSL은 사용 가능하며 https를 통해 호출 중에도 사용됩니다. 보안 쿠키를 해제하고 http를 사용하더라도 HTTPOnly 플래그가 설정되지 않으므로 당황 스럽습니다.
=== 업데이트 ===
는 더블 그러나, 나는 당신을 잘못 알고 계시는 나타나면 Http 만 응답이 당신이 쿠키를받을 처음에 제대로 서버에서 내려 보내 확인 데! 아약스 호출이 서버에 쿠키를 보내면 httponly 플래그를 추가하지 않는 것 같습니다. 그러면 Throw되는 쿠키가 더 이상 안전하지 않습니다. 쿠키의 보안 부분은 첫 번째 응답에서 보냈지 만, 적어도 이것으로 인해 조금 더 많은 컨텍스트가 추가됩니다.
감사합니다,이 습관에 원하는 동작을 다시 신청 그래도 HttpOnly 효과가 있습니까? 또는 그것도 양식이나 무언가에 설정해야합니까? 나는이 쿠키가 매 쿠키마다 수동으로 설정되어 있기 때문에 이상하게 느낀다. 그래서 나는 입력 된 내용을 받아들이지 않는 이유를 모른다. – Grofit
양식 비트가 작동하지 않습니다. web.config가 유효하지 않지만 MSDN에서 설명서가로드되지 않으므로 필요한 하위 요소가 있는지 확실하지 않습니다. – Grofit
이것이 내 질문에 대한 답변이 아니었지만, 여기에 오는 대부분의 사람들이 위에 열거 한 해결책을 필요로 할 것이므로 응답으로 표시 할 것입니다. – Grofit