세션 쿠키
설명
세션 쿠키에 올바른 플래그와 만료가 있는지 확인합니다.
수정 방안
HTTP는 상태 비저장 프로토콜이므로 웹사이트는 일반적으로 쿠키를 사용하여 요청 간에 사용자를 고유하게 식별하는 세션 ID를 저장합니다. 따라서 각 세션 ID의 기밀성을 유지해야 여러 사용자가 동일한 계정에 접근하는 것을 방지할 수 있습니다. 도둑맞은 세션 ID는 다른 사용자의 계정을 보거나 사기 거래를 수행하는 데 사용될 수 있습니다.
-
세션 ID를 보호하기 위한 한 가지 방법은 만료되도록 올바르게 표시하고 스크립팅으로부터 전송되거나 접근되지 않도록 보장하는 올바른 플래그 세트를 요구하는 것입니다.
-
HttpOnly는 Set-Cookie HTTP 응답 헤더에 포함된 추가 플래그입니다. 쿠키를 생성할 때 HttpOnly 플래그를 사용하면 보호된 쿠키에 클라이언트 측 스크립트가 접근하는 위험을 완화할 수 있습니다(브라우저가 이를 지원하는 경우). HTTP 응답 헤더에 HttpOnly 플래그(선택 사항)가 포함되면 쿠키는 클라이언트 측 스크립트를 통해 접근할 수 없습니다(다시 말해, 브라우저가 이 플래그를 지원할 경우). 따라서 교차 사이트 스크립팅(XSS) 결함이 존재하더라도 사용자가 이 결함을 이용한 링크에 우연히 접근하더라도 브라우저는 쿠키를 제3자에게 노출하지 않습니다.
-
HTTPS 세션에서 민감한 쿠키에 대한 Secure 속성이 설정되어 있지 않으면 사용자 에이전트가 해당 쿠키를 HTTP 세션에서 평문으로 전송할 위험이 있습니다.
-
안전하지 않은 전송 프로토콜에서 사용 중인 세션 관련 쿠키가 식별되었습니다. 안전하지 않은 전송 프로토콜은 SSL/TLS를 사용하여 연결을 보호하지 않는 프로토콜입니다. 그러한 프로토콜의 예는 ‘http’입니다.
-
웹 애플리케이션이 공격자가 오래된 세션 자격 증명 또는 세션 ID를 권한 부여에 재사용하도록 허용할 때 불충분한 세션 만료가 발생합니다. 불충분한 세션 만료는 사용자의 세션 식별자를 훔치거나 재사용하려는 공격으로부터 웹사이트의 노출을 증가시킵니다. HTTP는 상태 비저장 프로토콜이므로 웹사이트는 일반적으로 쿠키를 사용하여 요청 간에 사용자를 고유하게 식별하는 세션 ID를 저장합니다. 따라서 각 세션 ID의 기밀성을 유지해야 여러 사용자가 동일한 계정에 접근하는 것을 방지할 수 있습니다. 도둑맞은 세션 ID는 다른 사용자의 계정을 보거나 사기 거래를 수행하는 데 사용될 수 있습니다. 세션 ID를 보호하기 위한 한 가지 방법은 만료되도록 올바르게 표시하고 스크립팅으로부터 전송되거나 접근되지 않도록 보장하는 올바른 플래그 세트를 요구하는 것입니다.