이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 15572|회답: 0

[ASP.NET] 일반적인 웹 개발 언어에서 HttpOnly 설정에 대한 자세한 설명

[링크 복사]
게시됨 2015. 6. 3. 오후 9:02:38 | | |

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




이전의:Httponly로 웹 애플리케이션 보안을 향상시키기
다음:SQL Server 2008 5120 첨부 데이터베이스 오류 해결책
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com