소개 대표 사이트 카테고리 커뮤니티 페이지 만들기
본문 바로가기
프로그램 (PHP,Python)

HttpOnly를 이용한 쿠키 하이재킹 방지

by 날으는물고기 2009. 11. 24.

HttpOnly를 이용한 쿠키 하이재킹 방지

728x90

쿠키의 httponly 옵션에 대해서

1. 언제 개발되었나?
   -2002년 MS IE6.0 SP1 에서 최초 지원

2. 어떤 동작을 하는가?
   -클라이언트 브라우저에서 쿠키가 생성될때 httponly 옵션이 있으면
    클라이언트 스크립트의 쿠키 요청에 대해서 브라우저는 응답을 하지 않습니다.
   -예를 들어 쿠키 생성시 httponly 옵션이 있다면 javascript 의 document.cookie 메소드를 통해
    쿠키정보를 브라우저로 부터 획득할 수 없습니다.

3. 왜 만들어 졌는가?
   -XSS 를 이용한 쿠키 하이재킹에 대응하기 위해 개발된 기술입니다.

4. 지원하는 브라우저
   -Microsoft Internet Explorer 6.0 SP1 이상
   -Mozilla Firefox  3.0.0.6+ 이상
   -Netscape Navigator 9.0b3 이상
   -Opera 9.50 이상
   -Google's Chrome
  
   -ASP, JSP 같은 웹 언어하고는 상관 없습니다.
    쿠키를 발생하는 Set-Cookie 에 httponly 라는 문자열만 있으면 되며
    클라이언트 측 브라우저가 해당 옵션을 지원하냐 못하냐의 문제입니다.
   -현재 대부분의 최신 브라우저에서 지원하고 있으며 지원하지 않는다고 해서

    에러는 발생하지 않고 단지 옵션이 무시됩니다.

5. MS 의 표준화 노력

   -ASP.NET 2.0 환경에서는 시스템 쿠키에서 httponly 는 디폴트로 생성이 됩니다.

   -MSDN 발췌

    "HttpOnly. This property specifies whether the cookie can be accessed by client script. In ASP.NET 2.0, this value is always set to true. Internet Explorer 6 Service Pack 1 supports this cookie attribute, which prevents client-side script from accessing the cookie from the document.cookie property."

http://msdn.microsoft.com/en-us/library/ms533046.aspx
http://blogs.msdn.com/ie8kr/archive/2009/03/17/ie8-5.aspx
http://www.owasp.org/index.php/HTTPOnly
http://msdn.microsoft.com/en-us/library/aa480476.aspx


출처 : http://blog.naver.com/kim119z


<script type="text/javascript">
function showMeTheCookie()
{
    alert(document.cookie);
}

function normalCookie()
{
    document.cookie="Name=Value";
    showMeTheCookie();
}

function httpOnlyCookie()
{
    document.cookie="Name=Value; httpOnly";
    showMeTheCookie();
}
</script>

<FORM>
    <INPUT TYPE="BUTTON" onClick="normalCookie();" Value="Display Normal Cookie">
    <INPUT TYPE="BUTTON" onClick="httpOnlyCookie();" Value="Display httpOnly Cookie">
</FORM>

소스 출처 : http://mkseo.pe.kr/blog

728x90
그리드형(광고전용)

댓글