Aby uzyskać analizę XSS w celu uzyskania informacji o plikach cookie przez HttpOnly, zapoznaj się z tekstem Kenshina: Using httpOnly to improve application security.
Ustawienia w javaEE:
W API nie ma konkretnej metody operacji ani atrybutu funkcji i nie wiem, czy będzie dostępny w przyszłych wersjach, poniższe jest obejście:
————————————————————————————–
response.setHeader("Set-Cookie", "cookiename=value; Path=/; Domain=neeao.com; Max-Wiek=sekundy; HTTPOnly");
————————————————————————————–
Ustawienia w ASP.NET Wersje .NET 2.0 i wyższe obsługują konfigurację globalnego http-only w pliku Web.config, co jest ustawione następująco, wystarczy dodać węzeł do web.config: ------------------------------------------------------------------ <httpCookies httpOnlyCookies="true" /> ------------------------------------------------------------------ W obiekcie cookie .net 2.0 lub nowszym istnieje bezpośredni parametr HttpOnly do wywołania, a metoda użycia jest następująca: Kod C#: ------------------------------------------------------------------ HttpCookie myCookie = nowy HttpCookie ("myCookie"); myCookie.HttpOnly = true; Response.AppendCookie(myCookie); ------------------------------------------------------------------- vb.net kod ------------------------------------------------------------------- Osłabić myCookie jako HttpCookie = nowy HttpCookie("myCookie") myCookie.HttpOnly = Prawdziwe Response.AppendCookie(myCookie) ------------------------------------------------------------------- W asp.net 1.1 można także ustawić globalne ciasteczka HttpOnly tak, aby dodawały zdarzenie Application_EndRequest węzła aplikacji globalnego pliku Global.asax: ------------------------------------------------------------------- chroniony void Application_EndRequest(Nadawca obiektu, EventArgs e)
{ string authCookie = FormsAuthentication.FormsCookieName; foreach (ciąg sCookie w Response.Cookies) { if (sCookie.Equals(authCookie)) { Response.Cookies[sCookie]. Ścieżka += "; HttpOnly"; } } } ------------------------------------------------------------------- Jeśli zapiszesz to w kodzie, musisz dodać to w ten sposób: -------------------------------------------- Response.Cookies[cookie]. Ścieżka += "; HTTPonly"; --------------------------------------------- ustawienia w PHP Wersje PHP5.2 i wyższe już obsługują ustawianie parametrów HttpOnly, a także globalne ustawienie HttpOnly w php.ini ----------------------------------------------------- session.cookie_httponly = ----------------------------------------------------- Ustaw jego wartość na 1 lub TRUE, aby włączyć atrybut HttpOnly w globalnym ciasteczku, a oczywiście możesz też włączyć go w kodzie: ----------------------------------------------------- <?php ini_set("session.cookie_httponly", 1); lub session_set_cookie_params(0, NULL, NULL, NULL, TRUE); ?> ----------------------------------------------------- Funkcja operacji ciasteczka setcookie oraz funkcja setrawcookie dodają także 7. parametr jako opcję dla HttpOnly, a metoda otwierania to: ------------------------------------------------------- setcookie ("abc", "test", NULL, NULL, NULL, NULL, TRUE); setrawcookie ("abc", "test", NULL, NULL, NULL, NULL, TRUE); ------------------------------------------------------- W wersjach PHP sprzed wersji 5.1 i PHP4 musisz użyć funkcji nagłówka, aby dokonać zmian: ------------------------------------------------------------- <?php nagłówek("Set-Cookie: hidden=value; httpOnly"); ?> -------------------------------------------------------------
ASP W wbudowanych obiektach ASP nie ma odpowiednich metod, więc można je zaimplementować jedynie jako obejście: -----------------------------------------------------<% ‘************************************************** 'ASP output httponly cookie IE6.0 lub nowsza obsługa przeglądarek 'WDFrog ‘2009-04-15 '<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> ‘**************************************************
'———-SetOnlyCookie—————————————- 'Funkcja: Ustaw tylko ciasteczka http 'Parametry: expDate to wygaśnięcie gwarancji, 0 oznacza nieustalony, a ustawienie na określony czas w przeszłości oznacza zakończenie 'argument: domain is empty (string. Empty) oznacza nieustalony ‘——————————————————————- Funkcja SetHttpOnlyCookie(cookieName,cookieValue,domain,path,expDate) Dim cookie cookie=cookieName & "=" & Server.URLEncode(cookieValue) & "; path=" & path Jeśli expDate <> 0, to cookie=ciasteczko & "; expires=" & DateToGMT(expDate) Koniec Jeśli
Jeśli domena <> "" To cookie=ciasteczko & "; domena=" & dziedzina Koniec Jeśli
cookie=ciasteczko & "; HttpOnly"
Wywołanie Response.AddHeader ("Set-Cookie", cookie) Funkcja końcowa
'————-zrozum GMTTime———— 'Parametry: sDate to czas, który trzeba przeliczyć na GMT ‘——————————— FunkcjaDateToGMT(sDate) Dim dWeek, dMonth Dim strZero, strZone strZero="00" strZone="+0800" dWeek=Array("Niedziela","Poniedziałek,"Wt.","Wes","Czw.", "Piątek,"Sob") dMonth=Array("styczeń","luty","marzec","kwiecień","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad", "grudzień") 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 Funkcja końcowa ' odniesienie 'Call SetHttpOnlyCookie("cookieOnly1","onlyValue",".xxx.com","/",0)
%>
---------------------------------------------------- Bibliografia: 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 |