본문 바로가기
[개발] Programming/Server

HttpOnly 쿠키 플래그 IIS에 설정하기 (OWASP 보안 설정)

by eatyourKimchi 2021. 10. 22.

 

HttpOnly 쿠키 플래그 설정이란,

 

 HTTP 응답으로 새로운 쿠키를 사용자에게 전달할 때 설정할 수 있는 옵션으로, 제 3자가 쿠키를 탈취하여 내용을 볼 수 없도록 하기 위함입니다. HttpOnly 설정을 적용하면 브라우저는 HTTPS 환경에서만 쿠키를 전송하게 되므로 공격자는 쿠키의 내용을 볼 수 없습니다. 즉, HTTP 프로토콜에서는 쿠키를 전송하지 않는다는 설정입니다.

 

 

 

HttpOnly flag 적용 여부 확인

우선 HttpOnly flag가 설정되어 있는지 확인하고 싶다면,

사이트를 열고 f12로 브라우저의 개발자 도구를 열어 줍니다.

 

크롬 기준 'Application'이라는 탭을 열어줍니다.

왼편 'Storage' 항목에 'Cookies'가 있는데, 거기서 원하는 사이트를 클릭하면 됩니다.

그럼 쿠키 관련 설정 값들을 볼 수 있고 그중에 HttpOnly 항목을 보면 되죠.

 

 

 

HttpOnly flag 적용하기

톰캣, 자바, PHP 설정 방법은 아래 블로그 참고하시면 됩니다.

 

https://diabol.tistory.com/54

 

[웹 보안취약점] HttpOnly 설정 방법 (Tomcat, WEBAPP, JAVA, PHP, IIS 10)

⊙ Tomcat - tomcat/conf/context.xml 톰캣 6 이상부터 지원한다! 5.5.28 부터도 가능할지도.. (근데 업그레이드하면 자동으로 httponly 적용이 됐던 것 같은..) 경로는....

diabol.tistory.com

 

 

HttpOnly flag IIS에 적용하기

서버 설정 파일인 'web.config' 파일을 찾아 줍니다.

파일을 열어서 아래 소스를 추가하면 간단하게 적용됩니다.

 

configuration > rewrite > system.webServer 밑에 아래 소스 추가합니다.

<outboundRules>
  <rule name="Use only secure cookies" preCondition="Unsecured cookie">
    <match serverVariable="RESPONSE_SET_COOKIE" pattern=".*" negate="false" />
    <action type="Rewrite" value="{R:0}; secure" />
  </rule>
  <preConditions>
    <preCondition name="Unsecured cookie">
      <add input="{RESPONSE_SET_COOKIE}" pattern="." />
      <add input="{RESPONSE_SET_COOKIE}" pattern="; secure" negate="true" />
    </preCondition>
  </preConditions>
</outboundRules>

 

 

적용이 잘 되었는지 확인하려면,

WAS 재기동하고, 브라우저 쿠키 삭제한 다음에 다시 웹을 호출해야 합니다.

 

그럼 아래와 같이 HttpOnly에 체크가 생긴 걸 확인할 수 있습니다.

 

 

 

HttpOnly Flag 설정 끝!~

 

 

댓글