HttpOnly가 XSS를 분석하여 쿠키 정보를 얻으려면, Kenshin의 글을 참고하시기 바랍니다: httpOnly 사용에 대한 애플리케이션 보안 향상.
javaEE 설정:
API에는 특정 연산 메서드나 함수 속성이 제공되지 않으며, 향후 버전에서 제공될지 모르겠습니다. 다음은 우회 방법입니다:
————————————————————————————–
response.setHeader("Set-Cookie", "cookiename=value; 경로=/; Domain=neeao.com; 최대 나이=초; HTTPOnly");
————————————————————————————–
ASP.NET 배경 .net 2.0 이상 버전은 Web.config 파일에서 전역 httponly를 구성할 수 있도록 지원합니다. 설정은 다음과 같습니다. web.config에 노드를 추가하면 됩니다: ------------------------------------------------------------------ <httpCookies httpOnlyCookies="true" /> ------------------------------------------------------------------ .net 2.0 이후 쿠키 객체에는 직접 호출을 위한 HttpOnly 매개변수가 있으며, 사용 방법은 다음과 같습니다: C# 코드: ------------------------------------------------------------------ HttpCookie myCookie = 새로운 HttpCookie("myCookie"); myCookie.HttpOnly = true; 응답.AppendCookie(myCookie); ------------------------------------------------------------------- vb.net 코드 ------------------------------------------------------------------- Dim myCookie As HttpCookie = 새 HttpCookie("myCookie") myCookie.HttpOnly = 참 응답.추가 쿠키(myCookie) ------------------------------------------------------------------- asp.net 1.1에서는 글로벌 쿠키 HttpOnly 설정도 글로벌 파일 Global.asax의 애플리케이션 노드 Application_EndRequest 이벤트를 추가할 수 있습니다: ------------------------------------------------------------------- protected void Application_EndRequest(Object sender, EventArgs e)
{ 문자열 authCookie = FormsAuthentication.FormsCookieName; foreach (Response.Cookies의 sCookie 문자열) { if (sCookie.Equals(authCookie)) { 응답.쿠키[sCookie]. 경로 += "; HttpOnly"; } } } ------------------------------------------------------------------- 코드를 작성한다면 다음과 같이 추가해야 합니다: -------------------------------------------- Response.Cookies[cookie]. 경로 += "; HTTPOnly"; --------------------------------------------- PHP 설정 PHP5.2 이상 버전은 이미 HttpOnly 매개변수 설정을 지원하며, php.ini에서 전역 HttpOnly 설정도 지원합니다 ----------------------------------------------------- session.cookie_httponly = ----------------------------------------------------- 값을 1 또는 TRUE로 설정해 글로벌 쿠키의 HttpOnly 속성을 활성화하고, 물론 코드에서도 활성화할 수 있습니다: ----------------------------------------------------- <?php ini_set("session.cookie_httponly", 1); 또는 session_set_cookie_params(0, NULL, NULL, NULL, TRUE); ?> ----------------------------------------------------- 쿠키 연산 함수 setcookie 함수와 setrawcookie 함수도 HttpOnly의 7번째 매개변수를 옵션으로 추가하며, 시작 메서드는 다음과 같습니다: ------------------------------------------------------- setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); setrawcookie("abc", "test", NULL, NULL, TRUE); ------------------------------------------------------- 5.1 이전 및 PHP4 이전 PHP 버전에서는 헤더 함수를 사용해 변경을 해야 합니다: ------------------------------------------------------------- <?php header("Set-Cookie: hidden=value; httpOnly"); ?> -------------------------------------------------------------
ASP ASP의 내장 객체에는 관련 메서드가 제공되지 않아, 임시 우회 방법으로만 구현할 수 있습니다: -----------------------------------------------------<% ‘************************************************** 'ASP는 httponly, 쿠키 IEC 6.0 이상 브라우저 지원 'WDFrog ‘2009-04-15 '<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> ‘**************************************************
'———-SetHttpOnlyCookie—————————————- '기능: httpOnly 쿠키 설정 '매개변수: expDate는 보증 만료일, 0은 설정되지 않았다는 뜻, 과거 일정 시점으로 설정됨은 결제 완료를 의미합니다 'argument: 도메인은 비어 있다 (문자열. Empty)는 설정되지 않았다는 의미입니다 ‘——————————————————————- 함수 집합 HttpOnlyCookie(cookieName, cookieValue, domain, path, expDate) 딤 쿠키 cookie=cookieName & "=" & Server.URLEncode(cookieValue) & "; path=" & path expDate가 0이라면<>, cookie=cookie & "; expires=" & DateToGMT(expDate) 끝 If
도메인이 <> ""이면, cookie=cookie & "; 도메인=" & 도메인 끝 If
cookie=cookie & "; HttpOnly"
Call Response.AddHeader ("Set-Cookie", 쿠키) 최종 기능
'————-GMTime———— '매개변수: sDate는 GMT로 변환해야 하는 시간입니다 ‘——————————— Function DateToGMT(sDate) 어딘가 d위크, dMonth 어딘가 스트리제로, 스트로존 strZero="00" strZone="+0800" dWeek=Array("Sun", "Mon", "Tue", "Wes", "Thu", "Fri", "Sat") dMonth=Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") DateToGMT = dWeek(WeekDay(sDate)-1)&", "&Right(strZero&Day(sDate),2)&" "&dMonth(Month(sDate)-1)&" "&Year(sDate)&" "&Right(strZero&Hour(sDate),2)&":"&Right(strZero&Minute( sDate),2)&":"&Right(strZero&Second(sDate),2)&" "&strZone 최종 기능 ' 참고문헌 'SetHttpOnlyCookie("cookieOnly1","onlyValue",".xxx.com","/",0을 호출합니다)
%>
---------------------------------------------------- 참고문헌: 1.http://www.owasp.org/index.php/HTTPOnly 2.http://blogs.msdn.com/dansellers/archive/2006/03/13/550947.aspx 3.http://ilia.ws/archives/121-httpOnly-cookie-flag-support-in-PHP-5.2.html 4.http://www.asp101.com/tips/index.asp?id=160 5.http://www.cnblogs.com/wdfrog/archive/2009/04/15/1436493.html |