2014-10-18 6 views
1

ASP.NET 웹 응용 프로그램에서 아래 항목을 추가하여 ASP.NET_SessionID 및 .ASPXAUTH 쿠키 보안을 설정하기 위해 아래 변경을했습니다.서버에서받은 쿠키는 안전하지만 서버에 보내는 쿠키가 안전하지 않습니다. ASP.NET

<httpCookies httpOnlyCookies="true" requireSSL="true" /> 

web.config 반면 및 아래의 태그를 추가하는

<forms requireSSL ="true" /> 

하지만 내 문제가 여기에 서버로부터받은 쿠키 (네트워크 -> Cookies-> 방향 열받은의 값이)이다 Secure 및 HttpOonly 플래그가 true로 설정되어 있습니다. IE 11 개발자 도구를 사용하여 디버깅 할 때 정보를 찾았지 만 서버 (네트워크 -> 쿠키 -> 방향 열에 보낸 값이 있음)로 전송 된 쿠키 데이터에는 Secure 또는 HttpOnly 플래그가 true로 설정되어 있지 않습니다.

기본 동작입니까? 그렇다면 왜 서버에 전송 된 데이터에 Secure 및 HttpOnly 플래그가 설정되어 있지 않은 것입니까? 위의 설정 파일에 대한 변경 사항 이외의 설정 방법.

답변

3

Secure 및 HttpOnly와 같은 쿠키 플래그는 서버에서만 클라이언트로 전송됩니다. 당신은 다른 방향으로가는 교통에서 그들을 결코 보지 않을 것이다. 쿠키가 안전한 지 확인하려면 브라우저가 HTTPS 대신 HTTP를 통해 요청하고 쿠키가 아직 존재하는지 확인하십시오 (그렇지 않아야 함). 쿠키가 HttpOnly인지 확인하려면 브라우저에서 사이트를 연 다음 dev 도구에서 JS 콘솔을 사용하여 document.cookie의 값을 확인하십시오. 당신은 httponly가 아닌 쿠키를보아야 만합니다.

쿠키는 본질적으로 클라이언트 측의 것입니다. 그것들은 서버가 클라이언트에게 "당신이 나에게 요청할 때마다,이 정보 비트를 포함"을 알리는 방법입니다. 보안 플래그는 "보안 연결을 통해 을 요청할 때마다이 정보 비트를 포함하지만 안전하지 않은 연결을 통해이를 공개하지 않습니다."라고 말합니다. 일치하는 사용자 에이전트, 즉 웹 브라우저는 해당 지시문을 준수해야합니다. 그러나 다른 방법으로는 동등한 지시어가 없습니다. 서버는 클라이언트가 보낸 쿠키로 전혀 아무것도 할 필요가 없으며 서버가 클라이언트에서 쿠키를 설정할 수있는 것과 동일한 "클라이언트가 서버에 쿠키를 설정합니다"는 없습니다. 지시문 (Secure, HttpOnly, Domain, Expires 등 포함)은 을 설정하면 쿠키 만 사용됩니다.

+0

답장을 보내 주셔서 감사합니다. @CB 해킹. 하지만 질문이 하나 더 있는데, 아래의 '$ .cookie ('Name ','Value ', {path :'/ ', secure : true});와 같이 Secure 키워드를 사용하여 Jquery 쿠키를 만들었습니다. 따라서 http 프로토콜을 사용하여 쿠키에 액세스하려고하면 쿠키가 존재하지 않습니다. 쿠키가 안전하다고 보입니까? – Rajesh

+1

예, JavaScript를 사용하여 쿠키를 만들 수도 있고 서버에서 설정 한 경우처럼 보안과 같은 옵션을 포함하여 쿠키의 매개 변수를 제어 할 수도 있습니다. 앞에서 설명한 동일한 테스트 - 서버에 대한 트래픽을 확인합니다. HTTPS는 보안 쿠키가 있어야하지만 HTTP는 그렇지 않아야합니다. - 서버가 쿠키를 설정했는지 또는 스크립트가 설정했는지에 관계없이 작동합니다. – CBHacking

+0

귀하의 제안에 따라 자바 스크립트를 사용하여 설정된 쿠키에 대해 피들러를 사용하여 사이트의 트래픽을 확인했지만 안전한 쿠키 집합은 없습니다. 또한 나는 당신의 요점을 알지 못했습니다 - 서버가 쿠키를 설정했는지 또는 스크립트가했는지는 작동합니다. _이탤릭체_. 그 죄송합니다. 그 라인을 간략하게 설명해 주시겠습니까? – Rajesh