세션 쿠키
GitLab v19.5요약
세션 쿠키에 올바른 플래그와 만료 설정이 적용되었는지 확인합니다. HTTP는 상태를 저장하지 않는 프로토콜이므로, 웹사이트는 요청 간에 사용자를 고유하게 식별하는 세션 ID를 쿠키에 저장하는 경우가 많습니다.
설명#
세션 쿠키에 올바른 플래그와 만료 설정이 적용되었는지 확인합니다.
해결 방법#
HTTP는 상태를 저장하지 않는 프로토콜이므로, 웹사이트는 요청 간에 사용자를 고유하게 식별하는 세션 ID를 쿠키에 저장하는 경우가 많습니다. 따라서 여러 사용자가 같은 계정에 접근하지 못하도록 각 세션 ID의 기밀성을 유지해야 합니다. 도용된 세션 ID는 다른 사용자의 계정을 열람하거나 부정 거래를 수행하는 데 악용될 수 있습니다.
- 세션 ID를 보호하는 방법 중 하나는 만료가 제대로 표시되도록 하고, 평문으로 전송되거나 스크립트에서 접근되지 않도록 올바른 플래그 조합을 요구하는 것입니다.
- HttpOnly는 Set-Cookie HTTP 응답 헤더에 포함되는 추가 플래그입니다. 쿠키를 생성할 때 HttpOnly 플래그를 사용하면 클라이언트 측 스크립트가 보호된 쿠키에 접근할 위험을 줄일 수 있습니다(브라우저가 지원하는 경우). HTTP 응답 헤더에 HttpOnly 플래그(선택)가 포함되면 클라이언트 측 스크립트로는 쿠키에 접근할 수 없습니다(마찬가지로 브라우저가 이 플래그를 지원하는 경우). 그 결과 교차 사이트 스크립팅(XSS) 결함이 있고 사용자가 이 결함을 악용하는 링크에 실수로 접근하더라도, 브라우저는 제3자에게 쿠키를 노출하지 않습니다.
- HTTPS 세션에서 민감한 쿠키에 Secure 속성이 설정되어 있지 않으면, 사용자 에이전트가 HTTP 세션을 통해 해당 쿠키를 평문으로 전송할 수 있습니다.
- 세션 관련 쿠키가 안전하지 않은 전송 프로토콜에서 사용되는 것으로 확인되었습니다. 안전하지 않은 전송 프로토콜은 연결을 보호하는 데 SSL/TLS를 사용하지 않는 프로토콜이며, 'http' 가 그 예입니다.
- 불충분한 세션 만료는 웹 애플리케이션이 공격자로 하여금 오래된 세션 자격 증명이나 세션 ID를 인가에 재사용하도록 허용할 때 발생합니다. 불충분한 세션 만료는 사용자의 세션 식별자를 탈취하거나 재사용하는 공격에 웹사이트가 노출될 가능성을 높입니다.