2013-04-10 2 views
2

많은 사람들에게 반대의 문제가있는 것 같습니다. 많은 질문들이 쿠키가 HttpOnly 설정을 잃는 이유를 살펴 보았습니다. 나는 왜 광산이 계속 걸어 다니는지 알아 내려고 노력 중이다.쿠키에서 HttpOnly 플래그를 지우는 방법은 무엇입니까?

ServiceStack을 사용하여 프록시 서비스를 작성하여 jQuery ajax 호출이 JSONP 또는 CORS를 구현하지 않는 서버와 상호 도메인 작업을 할 수있게했습니다. 걱정하지 마십시오. 실제로는 합법적 인 프로젝트입니다. 쿠키를 포함하는 응답이 수신되면 다음과 같이 나는 응답 객체에 걸쳐 복사 :

수신 쿠키 :

Set-Cookie: MYAPI=8579...05B1; expires=Thu, 10-Apr-2014 13:08:18 GMT; path=/ 

당신이 더 Http 만 플래그를 볼 수 있듯이. 그런 다음 다음과 같이 쿠키를 복사합니다.

var cookies = client.CookieContainer.GetCookies(new Uri(apiUrl)); 
foreach (Cookie cookie in cookies) 
{ 
    cookie.HttpOnly = false; 
    cookie.Domain = ""; 
    Response.Cookies.AddCookie(cookie); 
} 

그런 다음 응답을 반환합니다. 모든 데이터는 제대로을 통해 제공하지만 쿠키는 다음과 같이 끝 :

내가 내 Web.config를 설정 한
Set-Cookie: MYAPI=8579...05B1; expires=Thu, 10-Apr-2014 13:08:18 GMT; path=/; HttpOnly 

다음

<httpCookies httpOnlyCookies="false"/> 

어떤 아이디어를 HttpOnly 플래그가 설정되는 이유에 , 그리고 그것을 어떻게 해결할 수 있습니까? 나는 어딘가에서 ServiceStack이 기본적으로 HttpOnly으로 설정되어 있지만 읽지 않은 것을 읽지 못했습니다.

+0

또한 https://github.com/stabbylambda/ServiceStack/commit/2fe1fefa338d3aac7aed6d7161dc0e2191dd52dd에 따르면 ServiceStack은 HttpOnly 쿠키 만 사용하도록 설정된 것처럼 보입니다. 기본적으로 HttpOnly를 설정하려는 욕구를 이해하고 있지만 궁극적으로 개발자의 재량에 달려 있지 않습니까? –

답변

2

이 상황에 대처하기 위해 ServiceStack에 AllowNonHttpOnlyCookies이 추가되었습니다. 설정 기본값은 false (쿠키 적용 HttpOnly)입니다.

관련 문제