"secure" 플래그 없이 쿠키를 생성하는 것은 보안에 취약할 수 있습니다.

 

쿠키의 secure 속성이 true 로 설정되어 보호되면, 브라우저는 암호화되지 않은 HTTP 요청에 쿠키를 보내지 않으므로 중간자 공격(man-in-the-middle attack) 중에 권한이 없는 사용자가 쿠키를 확인할 수 없습니다.

스스로에게 물어보십시오

  • 쿠키가 HTTPS 요청이 아닌 통신을 통해 전송되도록 설계되지 않았습니다.
  • 웹사이트에 mixed content 가 포함되어 있는지 여부가 확실하지 않습니다.(즉, 모든 곳에서 HTTPS 를 사용하는지 확실하지 않습니다.)

이러한 상황에 해당되는 경우, 위험할 수 있습니다.

추천되는 안전한 코딩 관습

  • 모든 곳에서 HTTPS 를 사용하는 것이 바람직합니다. 따라서 쿠키의 secure 플래그를 true 로 설정하는 것이 기본값이 되어야합니다.
  • 세션 쿠키에 대해 secure 플래그를 true 로 설정합니다.

취약한 코드의 예

java 코드로 보안에 취약한 쿠키를 만드는 경우:

Cookie c = new Cookie(COOKIENAME, sensitivedata);
c.setSecure(false);  // 취약한 코드: secure 플래그가 false 인 채로 생성된 취약한 쿠키입니다.

기본적으로 secure 플래그가 false 로 설정된 경우:

Cookie c = new Cookie(COOKIENAME, sensitivedata);  // 취약한 코드: secure 플래그가 정의되지 않은채로 생성된 취약한 쿠키입니다. (기본적으로 false 로 설정됩니다.)

규칙을 준수한 해결책

Cookie c = new Cookie(COOKIENAME, sensitivedata);
c.setSecure(true); // 규칙을 준수한 코드 : secure 플래그가 true 로 설정되어있기에, 암호화되지 않은 HTTP 요청에 대해 민감한 쿠키가 전송되지 않을 것입니다.

참고


If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project