<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>
XSS (Cross Site Scripting) 을 막기위한 MS 의 노력중에 httpOnly Cookie가 있습니다. 핵심은 클라이언트 측 자바스크립트에서 쿠키를 접근하지 못하게 한다는 것입니다. 그리고 그 이름에서 드러나다시피, 쿠키는 반드시 http 접근에 의해서만 노출 될 수 있습니다. 따라서 XSS에서 document.cookie를 접근 할 수 없죠.
물론 이에대한 해결책(?!)도 있습니다. 바로 XST(Cross Site Tracing)이 그것입니다. XST의 설명을 보시겠지만 약간은 아이러니인 것이, XST의 핵심에는 바로 XMLHttpRequest가 떡하니 버티고 있습니다….
어쨌든 그래서 결론은, 웹 서버에서 TRACE옵션을 꺼야한다는 거죠.