상세 컨텐츠

본문 제목

세션 쿠키에서 https에서만 쿠키 보내도록 설정 하기 - requireSSL

카테고리 없음

by happynuri 2022. 6. 15. 18:49

본문

쿠키와 세션의 차이점

쿠키는 클라이언트 pc에 저장 되기 때문에, 임의로 고치거나 지울수 있어 세션 쿠키를 이용합니다.

 

세션은 브라우저 활성화 동안만 유지 되는 쿠키 입니다.

세션은 서버에 저장 되어, 서버의 메모리로 로딩 되므로, 세션이 생길때 마다 서버의 리소스를 차지 합니다.

 

 

HTTPS를 통해서만 전송되고 일반 HTTP를 통해 전송되지 않도록 ASP.NET 세션 쿠키에서 보안 플래그를 설정하는 방법은 무엇입니까?

 

https://docs.microsoft.com/ko-kr/previous-versions/dotnet/netframework-4.0/ms228262(v=vs.100)?redirectedfrom=MSDN 

 

httpCookies 요소(ASP.NET 설정 스키마)

httpCookies 요소(ASP.NET 설정 스키마) 아티클 08/09/2011 읽는 데 4분 걸림 이 문서의 내용 --> 웹 응용 프로그램에 사용되는 쿠키의 속성을 구성합니다. 특성 및 요소 다음 단원에서는 특성, 자식 요소

docs.microsoft.com

web.config에서 <system.web> 엘리먼트 하위에 추가 requireSSL과  httpOnlyCookies 는 false가 기본 값입니다.

 

<httpCookies domain="String" httpOnlyCookies="true|false" requireSSL="true|false" />

 

도메인은 추가 하지 않아도 됨.

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

 

 

아래의 쿠키에 대해서 이해 해보자

httpOnly가 체크 되어 있고,  SameSite가 Lax 입니다.

 

쿠키는 사용자의 정보를 나타내고, 해커들이 하이재킹 할 수 있습니다. 

따라서,  브라우저에서 쿠키에 접근 할 수 없도록 제한 하는 것입니다. Http Only Cookie 

--> javascript에서 쿠키를 탈취 할 수 없도록 하기 위해서 사용.

 

 HttpOnly 에 체크가 되려면 web.config에서  아래와 같이 합니다. 

<httpCookies httpOnlyCookies="true" >

 

 

Https에서만 쿠키가 전송 되어야 한다면 아래와 같이 수정 합니다.

<httpCookies requireSSL="true" />

 

크롬 브라우저에서는 SameSite가 Lax 로 기본값으로 설정 된다고 합니다.

제가 크롬으로 열어서 그런가 봐요. 

 

 Lax의 경우 무조건 SameSite 인지 체크하고, 허용된 몇개의 패턴 이외에는 SameSite가 아니면 쿠키를 전송하지 않도록 강제하는 쿠키 정책입니다.

 

SameSite 는 None, Strict, SameSite 가 있고, None은 체크 하지 않고, 쿠키를 전송 하고

Strict가 SameSite 보다 더 제한 된, 도메인과 도메인이 일치 해야 쿠키가 포함되어 전송 됩니다.

 

SameSite는 form method=get 이나, a href 같은 태그에서만 쿠키 전송이 됩니다.

 

 

댓글 영역