세션 쿠키 관련해서 공부하다가 막혔어요. 응답 헤더 예제 보면 쿠키 뒤에 옵션이 주렁주렁 붙어 있던데 이게 뭔지 하나씩은 잘 모르겠더라고요.
Set-Cookie: sid=abc123; HttpOnly; Secure; SameSite=Lax
일단 제가 대충 이해한 건 이런데요.
HttpOnly = 자바스크립트에서 document.cookie로 못 읽게 막는 거?
Secure = https에서만 전송?
SameSite = 다른 사이트에서 요청 보낼 때 쿠키 안 붙이는 거?
맞게 이해한 건지 잘 모르겠어요. 특히 HttpOnly 걸어두면 XSS 공격 당해도 쿠키는 안전한 건가요? 그리고 SameSite가 제일 헷갈리는데 Lax, Strict, None 이렇게 값이 있던데 차이가 뭔가요. Strict로 하면 제일 안전한 거 같은데 왜 다들 기본으로 Lax를 쓰라고 하는지 모르겠어요. None은 또 Secure랑 같이 써야 한다는 말도 있고요.
이 옵션들이 CSRF나 XSS 같은 공격이랑 각각 어떻게 연결되는지 큰 그림으로 설명해주시면 정말 감사하겠습니다. 지금은 그냥 남들 하는 대로 복붙만 하고 있어서 찝찝하네요.