Za analizo XSS s strani HttpOnly za pridobivanje informacij o piškotkih si oglejte Kenshinovo besedilo: Uporaba httpOnly za izboljšanje varnosti aplikacij.
Nastavitve v javaEE:
V API-ju ni določene metode delovanja ali funkcijskega atributa, in ne vem, ali bo na voljo v prihodnjih različicah, naslednje je rešitev:
————————————————————————————–
response.setHeader("Set-Cookie", "cookiename=value; Path=/; Domain=neeao.com; Max-Starost=sekunde; HTTPOnly");
————————————————————————————–
Nastavitve v ASP.NET Različice .NET 2.0 in novejše podpirajo konfiguracijo globalnega http-only v datoteki Web.config, ki je nastavljena takole: preprosto dodajte vozlišče v web.config: ------------------------------------------------------------------ <httpCookies httpOnlyCookies="true" /> ------------------------------------------------------------------ V .net 2.0 ali novejšem objektu piškotkov obstaja neposreden parameter HttpOnly za klice, metoda uporabe pa je naslednja: C# koda: ------------------------------------------------------------------ HttpCookie myCookie = nov HttpCookie ("myCookie"); myCookie.HttpOnly = res; Response.AppendCookie(myCookie); ------------------------------------------------------------------- vb.net koda ------------------------------------------------------------------- Zatemni myCookie kot HttpCookie = novi HttpCookie("myCookie") myCookie.HttpOnly = Resnično Response.AppendCookie(myCookie) ------------------------------------------------------------------- V asp.net 1.1 lahko globalne piškotke HttpOnly nastavite tako, da dodajo Application_EndRequest dogodek aplikacijskega vozlišča globalne datoteke Global.asax: ------------------------------------------------------------------- zaščitena praznina Application_EndRequest(Object sender, EventArgs e)
{ string authCookie = FormsAuthentication.FormsCookieName; foreach (niz sCookie v Response.Cookies) { if (sCookie.Equals(authCookie)) { Response.Cookies[sCookie]. Pot += "; HttpOnly"; } } } ------------------------------------------------------------------- Če ga napišete v kodo, ga morate dodati takole: -------------------------------------------- Response.Cookies[piškotek]. Pot += "; HTTPOunly"; --------------------------------------------- nastavitve v PHP Različice PHP5.2 in novejše že podpirajo nastavitev parametrov HttpOnly, prav tako pa podpirajo nastavitev globalnega HttpOnly v php.ini ----------------------------------------------------- session.cookie_httponly = ----------------------------------------------------- Nastavi njeno vrednost na 1 ali TRUE, da omogočiš atribut HttpOnly v globalnem piškotku, seveda pa jo lahko omogočiš tudi v kodi: ----------------------------------------------------- <?php ini_set("session.cookie_httponly", 1); ali session_set_cookie_params(0, NULL, NULL, NULL, TRUE); ?> ----------------------------------------------------- Funkcija za operacijo piškotkov setcookie in funkcija setrawcookie prav tako dodata 7. parameter kot možnost za HttpOnly, metoda odpiranja pa je: ------------------------------------------------------- setcookie ("abc", "test", NULL, NULL, NULL, NULL, TRUE); setrawcookie ("abc", "test", NULL, NULL, NULL, NULL, TRUE); ------------------------------------------------------- Za PHP različice pred različicama 5.1 in PHP4 morate uporabiti funkcijo glave za spremembe: ------------------------------------------------------------- <?php header("Set-Cookie: hidden=value; httpOnly"); ?> -------------------------------------------------------------
ASP V vgrajenih objektih ASP ni ustreznih metod, zato jih lahko implementirate le kot rešitev: -----------------------------------------------------<% ‘************************************************** 'ASP izpis httponly piškotkov IE6.0 ali novejše - podpora brskalnikom 'WDFrog ‘2009-04-15 '<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> ‘**************************************************
'———-SetHttpOnlyCookie—————————————- 'Funkcija: Nastavite piškotke samo za http 'Parametri: expDate je potek garancije, 0 pomeni ni nastavljeno, in nastavljeno na določen čas v preteklosti pomeni poplačilo 'argument: domena je prazna (string. Prazno) pomeni, da ni nastavljen ‘——————————————————————- Funkcija SetHttpOnlyCookie(cookieName,cookieValue,domain,path,expDate) Dim cookie cookie=cookieName & "=" & Server.URLEncode(cookieValue) & "; pot=" & pot Če je expDate <> 0, potem piškot=piškotek & "; expires=" & DateToGMT(expDate) Konec, če
Če <> domena "" Potem piškot=piškotek & "; domena=" & domena Konec, če
piškot=piškotek & "; HttpOnly"
Klic Response.AddHeader ("Set-Cookie", piškotek) Končna funkcija
'————-razumemGMTTime———— 'Parametri: sDate je čas, ki ga je treba pretvoriti v GMT ‘——————————— Funkcija DateToGMT(sDate) Dim dWeek,dMonth Dim strZero, strZone strZero="00" strZone="+0800" dWeek=Array("Sun","Mon","Turek","Wes","Čet","Petek,"Sobota") dMonth=Array("Jan", "Feb", "Marec", "Apr", "Maj", "Jun", "Jul", "Avg", "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 Končna funkcija ' referenca 'Pokliči SetHttpOnlyCookie("cookieOnly1","onlyValue",".xxx.com","/",0)
%>
---------------------------------------------------- Viri: 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 |